1. create a small hello world C program 2. compile it with debugging 3. run the program under gdb 4. type "info line main" in gdb 5. segfault Reproduceable with the RHEL3 U5 gdb, and the RHEL4 U2 candidate. valgrind says there's an invalid free: ==21896== Invalid free() / delete / delete[] ==21896== at 0x3414A75D: free (vg_replace_malloc.c:153) ==21896== by 0x80F3229: find_line_pc_range (symtab.c:2432) ==21896== by 0x80DE1D9: ??? (source.c:1351) ==21896== by 0x80845C5: execute_command (top.c:733) ==21896== Address 0x9C5FDEE8 is on thread 1's stack Line 5 of "tmp.c" starts at address 0x8048368 <main> and ends at 0x8048384 <main+28>. In gdb/symtab.c, find_line_pc_range(), pc_list is only defined if startaddr is 0, but freed unconditionally. Patch attached.
Created attachment 118546 [details] gdb-info-list-main-uninit-free.patch
Patch applied as of gdb-6.3.0.0-1.66
An advisory has been issued which should help the problem described in this bug report. This report is therefore being closed with a resolution of ERRATA. For more information on the solution and/or where to find the updated files, please follow the link below. You may reopen this bug report if the solution does not work for you. http://rhn.redhat.com/errata/RHBA-2006-0141.html