Bug 102318

Summary: gcc -g3 generates wrong debug info
Product: [openSUSE] SUSE LINUX 10.0 Reporter: Patrick Kirsch <pkirsch>
Component: DevelopmentAssignee: Michael Matz <matz>
Status: RESOLVED WONTFIX QA Contact: E-mail List <qa-bugs>
Severity: Normal    
Priority: P5 - None CC: pth
Version: Preview 4   
Target Milestone: ---   
Hardware: All   
OS: All   
Whiteboard:
Found By: Other Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---

Description Patrick Kirsch 2005-08-05 08:41:28 UTC
gdb segfaults on 'break main' on fdisk.     
     
steps to reproduce: - compile util-linux with debugging information (option: 
'-g3')    
    - run 'gdb ./fdisk'    
    - in gdb type 'break main'    
    - return:  (gdb) break main   
               Speicherzugriffsfehler   
  
 output of 'gdb gdb' : with '(gdb) r ./fdisk' and '(gdb) break main' :  
   
(gdb) break main  
Program received signal SIGSEGV, Segmentation fault.  
0x1015107c in process_die ()  
(gdb) bt  
#0  0x1015107c in process_die ()  
#1  0x101518e8 in psymtab_to_symtab_1 ()  
#2  0x10151ac8 in dwarf2_psymtab_to_symtab ()  
#3  0x100f1ef0 in psymtab_to_symtab ()  
#4  0x100ecaa8 in lookup_symbol_aux_psymtabs ()  
#5  0x100ecf88 in lookup_symbol ()  
#6  0x101716e4 in find_imps ()  
#7  0x100fab1c in decode_objc ()  
#8  0x100fbf74 in decode_line_1 ()  
#9  0x100c183c in parse_breakpoint_sals ()  
#10 0x100c18c0 in do_captured_parse_breakpoint ()  
#11 0x10056ba4 in catcher ()  
#12 0x10056cb0 in catch_exceptions_with_msg ()  
#13 0x100c5cfc in break_command_1 ()  
#14 0x10099e00 in do_cfunc ()  
#15 0x1009b128 in cmd_func ()  
#16 0x10057270 in execute_command ()  
#17 0x10114794 in command_handler ()  
#18 0x101158f4 in command_line_handler ()  
#19 0x0ffcdfa4 in rl_callback_read_char () from /lib/libreadline.so.5  
#20 0x0ffcdfa4 in rl_callback_read_char () from /lib/libreadline.so.5  
#21 0x0ffcdfa4 in rl_callback_read_char () from /lib/libreadline.so.5  
#22 0x0ffcdfa4 in rl_callback_read_char () from /lib/libreadline.so.5  
#23 0x0ffcdfa4 in rl_callback_read_char () from /lib/libreadline.so.5  
#24 0x0ffcdfa4 in rl_callback_read_char () from /lib/libreadline.so.5
Comment 1 Andreas Schwab 2005-08-15 15:56:36 UTC
gcc is generating bogus debug info.  From fdisk.s (compiled with -dA): 
 
	.byte	0x3	 # Start new file 
	.uleb128 0x12	 # Included from line number 18 
	.file 42 "/usr/include/setjmp.h" 
	.uleb128 0x2b	 # Filename we just started 
 
Apparently the file number counting gets out of sync. 
Comment 2 Michael Matz 2005-08-16 13:48:32 UTC
Crap.  I'll look at the GCC issue.  Unfortunately we now have some executables 
which already contain wrong debug info.  Can't we increase the robustness 
of gdb too, to not segfault on such, but merely ignore this (e.g. as if 
no file was given)?  Andreas, can you try to do this? 
Comment 3 Olaf Hering 2006-11-10 16:16:19 UTC
is this still an issue with gcc41?
Comment 4 Michael Matz 2007-07-27 06:45:42 UTC
No feedback, either it's fixed or not important, let's close it as wontfix.