On Mon, Nov 19, 2007 at 01:57:04AM +0100, Jan Christoph Nordholz wrote:
> Now I have at least a faint idea what I should be looking for in the source
> code... maybe you could speed it up by setting a watchpoint?
> 
> 1. start rxvt-xterm inside gdb
> 2. fire up mutt, open the first mail
> 3. CTRL+C...
> 
> ] (gdb) p screen.text[TermWin.saveLines]
> // check: should be the top line of your window
> ] (gdb) watch (void *)screen.text[TermWin.saveLines]
> ] Hardware watchpoint 1: (void *)screen.text[TermWin.saveLines]
> ] (gdb) c
> ] Continuing.
> 
> 4. Try to reproduce the crash.
> 
> Now it should not get to the segfault, but interrupt somewhere in between
> (exactly at the position where those buffer pointers are altered).
> I guess I don't need a core file then - a 'bt full' should provide all
> that's necessary to guide my search. ;)

Okay...

(gdb) r
Starting program: /home/joy/QA/rxvt/rxvt-2.6.4/src/rxvt-xterm 

Program received signal SIGTSTP, Stopped (user).
0x00002b0ce3dd9a75 in select () from /lib/libc.so.6
(gdb) p screen.text[TermWin.saveLines]
$1 = (
    text_t *) 0x54dfa0 "i:Exit  -:PrevPg  <Space>:NextPg v:View Attachm.  d:Del 
 r:Reply  j:Next ?:Help "
(gdb) watch (void *)screen.text[TermWin.saveLines]
Hardware watchpoint 1: (void *) screen.text[TermWin.saveLines]
(gdb) c
Continuing.

Program received signal SIGTSTP, Stopped (user).
0x00002b0ce3dd9a75 in select () from /lib/libc.so.6
(gdb) c
Continuing.

Hardware watchpoint 1: (void *) screen.text[TermWin.saveLines]

Old value = (void *) 0x54dfa0
New value = (void *) 0x543a10
scroll_text (row1=0, row2=518, count=10, spec=0) at screen.c:803
803                 screen.tlen[j] = screen.tlen[j + count];
(gdb) c
Continuing.
[here it's actually just stuck again... so I press Ctrl+Z]
Program received signal SIGTSTP, Stopped (user).
0x00000000004102e2 in scr_add_lines (
    str=0x51cdcc "***** Nagios  *****\r\n\nNotification Type: PROBLEM\r\nHost: 
nekkar.CARNet.hr\r\nState: DOWN\r\nAddress: 
161.53.160.239\r\nInfo:\r\n\nCRITICAL - Host Unreachable 
(161.53.160.239)\r\n\nDate/Time: Sun Jul 22 15:43:45 CE"..., nlines=-4, 
len=207) at screen.c:1012
1012            stp[screen.cur.col] = c;
(gdb) bt full
#0  0x00000000004102e2 in scr_add_lines (
    str=0x51cdcc "***** Nagios  *****\r\n\nNotification Type: PROBLEM\r\nHost: 
nekkar.CARNet.hr\r\nState: DOWN\r\nAddress: 
161.53.160.239\r\nInfo:\r\n\nCRITICAL - Host Unreachable 
(161.53.160.239)\r\n\nDate/Time: Sun Jul 22 15:43:45 CE"..., nlines=-4, 
len=207) at screen.c:1012
        c = 42 '*'
        i = 1
        j = 0
        row = 509
        last_col = 80
        checksel = 0
        clearsel = 0
        stp = (text_t *) 0x0
        srp = (u_int16_t *) 0x0
#1  0x0000000000408d47 in main_loop () at command.c:3307
        nlines = 10
        ch = 27 '\033'
        str = (
    unsigned char *) 0x51cdcc "***** Nagios  *****\r\n\nNotification Type: 
PROBLEM\r\nHost: nekkar.CARNet.hr\r\nState: DOWN\r\nAddress: 
161.53.160.239\r\nInfo:\r\n\nCRITICAL - Host Unreachable 
(161.53.160.239)\r\n\nDate/Time: Sun Jul 22 15:43:45 CE"...
#2  0x000000000040cd40 in main (argc=1, argv=0x7fffc70b26d8) at main.c:1434
---Type <return> to continue, or q <return> to quit---
        cmd_argv = (const char **) 0x0
(gdb) 

-- 
     2. That which causes joy or happiness.



-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to