This is the mail archive of the gdb@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

gdb crash in cp_print_class_method


Hi,
My colleagues and I have been seeing lots of GDB Seg Faults while
debugging a very large application (our unstripped binary is over
400Mb).  I have captured the gdb core file in two cases and included the
backtrace below (I also have the gdb commands and output for the second
backtrace included below).

We are running gdb 6.1 and ddd 3.3.1 on Red Hat 9 and RHEL 3.

This crash (or one very similar to it) occurs quite regularly but we
haven't been able to determine a way to repeat it on demand.  Our
application (a simulation model) often takes a long time to reach the
point of interest while debugging so we run it in gdb for half and hour
or sometimes much longer and somewhere along the way gdb will just seg
fault.  From a productivity point of view the crash happens quite often
(loosing an hour or so of sim time every few days) however it occurs
rarely enough that we can't see a pattern in our usage that is causing
the crash.

Can anyone help find this bug in GDB, is there something I can do to
provide more info for debugging?  Core files are out of the question as
they are also over 400Mb.  Any help would be greatly appreciated as this
is causing us to lose lots of time.

Thanks for your help,
Craig.


Crash 1
=======
(gdb) bt
#0  0xb74b0e7a in strcmp () from /lib/tls/libc.so.6
#1  0x0814d00f in cp_print_class_method (
    valaddr=0x15a88b68 "\030\214W\bnline/taam/src/m!", type=0x15ab6c48,
    stream=0x8283740) at cp-valprint.c:134
#2  0x0814ca69 in c_val_print (type=0x11361658,
    valaddr=0x15b2d3f8 "??4\bodel/dynamicX", embedded_offset=0,
    address=139955224, stream=0x8283740, format=0, deref_ref=1,
recurse=0,
    pretty=Val_prettyprint) at c-valprint.c:449
#3  0x080dbc40 in val_print (type=0x11361658,
    valaddr=0x15b2d3f8 "??4\bodel/dynamicX", embedded_offset=0,
    address=139955224, stream=0x8283740, format=0, deref_ref=1,
recurse=0,
    pretty=Val_pretty_default) at ./valprint.c:149
#4  0x0814ce53 in c_value_print (val=0x15b2d3b8, stream=0x8283740,
format=0,
    pretty=Val_pretty_default) at c-valprint.c:598
#5  0x080dbc9e in value_print (val=0x15b2d3b8, stream=0x8283740,
format=0,
    pretty=Val_pretty_default) at ./valprint.c:172
#6  0x080dd4e7 in print_formatted (val=0x15b2d3b8, format=0, size=55,
    stream=0x8283740) at ./printcmd.c:329
#7  0x080de2d5 in output_command (
    exp=0x82837af "fpitem->distIASVals.isLevelValid", from_tty=0)
    at ./printcmd.c:985
#8  0x080a8679 in do_cfunc (c=0x8293ae8,
    args=0x82837af "fpitem->distIASVals.isLevelValid", from_tty=0)
    at ./cli/cli-decode.c:57
#9  0x080aa3cf in cmd_func (cmd=0x8293ae8,
    args=0x82837af "fpitem->distIASVals.isLevelValid", from_tty=0)
    at ./cli/cli-decode.c:1541
#10 0x0807f266 in execute_command (p=0x82837ce "d", from_tty=0) at
top.c:743
#11 0x080fe4da in command_handler (
    command=0x82837a8 "output fpitem->distIASVals.isLevelValid")
    at event-top.c:500
#12 0x080fec55 in command_line_handler (
    rl=0x15a17a00 "output fpitem->distIASVals.isLevelValid") at
event-top.c:793
#13 0x081c100a in rl_callback_read_char () at callback.c:123
#14 0x080fdb9b in rl_callback_read_char_wrapper (client_data=0x0)
    at event-top.c:166
#15 0x080fe3ae in stdin_event_handler (error=0, client_data=0x0)
    at event-top.c:416
#16 0x080fd4f8 in handle_file_event (event_file_desc=0) at
event-loop.c:721
#17 0x080fcff6 in process_event () at event-loop.c:334
#18 0x080fd035 in gdb_do_one_event (data=0x0) at event-loop.c:371
#19 0x0807eebc in do_catch_errors (uiout=0x82aeda0, data=0xbfff9b10)
    at top.c:523
#20 0x0807ecd5 in catcher (func=0x807eea8 <do_catch_errors>,
    func_uiout=0x82aeda0, func_args=0xbfff9b10, func_val=0xbfff9b08,
    func_caught=0xbfff9b0c, errstring=0x81edf27 "", gdberrmsg=0x0,
mask=6)
    at top.c:430
#21 0x0807eefa in catch_errors (func=0x80fd00c <gdb_do_one_event>,
    func_args=0x0, errstring=0x81edf27 "", mask=6) at top.c:535
#22 0x080b5e99 in tui_command_loop (data=0x0) at ./tui/tui-interp.c:179
#23 0x080fafb1 in current_interp_command_loop () at interps.c:277
#24 0x00000033 in ?? ()


Crash 2
=======
(gdb) bt
#0  0xb74b2258 in strncmp () from /lib/tls/libc.so.6
#1  0x0810c853 in check_stub_method_group (type=0x1a0c4e60, method_id=2)
at gdbtypes.c:1652
#2  0x0814cfec in cp_print_class_method (valaddr=0x1a0c62e8
"H`N\bHX\006\032X?\f\032", type=0x1a1cc2a0, stream=0x8283740) at
cp-valprint.c:131
#3  0x0814ca69 in c_val_print (type=0x1a0c6f38, valaddr=0x1a0f51c0
"h???nline/taam/src/sim/", embedded_offset=0, address=139354184,
stream=0x8283740, format=0,
deref_ref=1, recurse=0, pretty=Val_prettyprint) at c-valprint.c:449
#4  0x080dbc40 in val_print (type=0x1a0c6f38, valaddr=0x1a0f51c0
"h???nline/taam/src/sim/", embedded_offset=0, address=139354184,
stream=0x8283740, format=0, deref_ref=1, recurse=0,
pretty=Val_pretty_default) at ./valprint.c:149
#5  0x0814ce53 in c_value_print (val=0x1a0f5180, stream=0x8283740,
format=0, pretty=Val_pretty_default) at c-valprint.c:598
#6  0x080dbc9e in value_print (val=0x1a0f5180, stream=0x8283740,
format=0, pretty=Val_pretty_default) at ./valprint.c:172
#7  0x080dd4e7 in print_formatted (val=0x1a0f5180, format=0, size=55,
stream=0x8283740) at ./printcmd.c:329
#8  0x080de2d5 in output_command (exp=0x82837af
"inData.getWindDistListIntoInputData", from_tty=0) at ./printcmd.c:985
#9  0x080a8679 in do_cfunc (c=0x8293ae8, args=0x82837af
"inData.getWindDistListIntoInputData", from_tty=0) at
./cli/cli-decode.c:57
#10 0x080aa3cf in cmd_func (cmd=0x8293ae8, args=0x82837af
"inData.getWindDistListIntoInputData", from_tty=0) at
./cli/cli-decode.c:1541
#11 0x0807f266 in execute_command (p=0x82837d1 "a", from_tty=0) at
top.c:743
#12 0x080fe4da in command_handler (command=0x82837a8 "output
inData.getWindDistListIntoInputData") at event-top.c:500
#13 0x080fec55 in command_line_handler (rl=0x1a0cea78 "output
inData.getWindDistListIntoInputData") at event-top.c:793
#14 0x081c100a in rl_callback_read_char () at callback.c:123
#15 0x080fdb9b in rl_callback_read_char_wrapper (client_data=0x0) at
event-top.c:166
#16 0x080fe3ae in stdin_event_handler (error=0, client_data=0x0) at
event-top.c:416
#17 0x080fd4f8 in handle_file_event (event_file_desc=0) at
event-loop.c:721
#18 0x080fcff6 in process_event () at event-loop.c:334
#19 0x080fd035 in gdb_do_one_event (data=0x0) at event-loop.c:371
#20 0x0807eebc in do_catch_errors (uiout=0x82aee30, data=0xbfffc150) at
top.c:523
#21 0x0807ecd5 in catcher (func=0x807eea8 <do_catch_errors>,
func_uiout=0x82aee30, func_args=0xbfffc150, func_val=0xbfffc148,
func_caught=0xbfffc14c, errstring=0x81edf27 "", gdberrmsg=0x0, mask=6)
at top.c:430
#22 0x0807eefa in catch_errors (func=0x80fd00c <gdb_do_one_event>,
func_args=0x0, errstring=0x81edf27 "", mask=6) at top.c:535
#23 0x080b5e99 in tui_command_loop (data=0x0) at ./tui/tui-interp.c:179
#24 0x080fafb1 in current_interp_command_loop () at interps.c:277
#25 0x00000033 in ?? ()


DDD command log from crash 2
============================
GNU DDD 3.3.1 (i386-redhat-linux-gnu), by Dorothea L?tkehaus and Andreas
Zeller.Copyright ? 1995-1999 Technische Universit?t Braunschweig,
Germany.
Copyright ? 1999-2001 Universit?t Passau, Germany.
bin/x86-Linux/sim.sun4: No such file or directory.
(gdb) file ../bin/x86-Linux/sim.sun4
Using host libthread_db library "/lib/tls/libthread_db.so.1".
(gdb) list climb_desc.C:3527
Line 3527 of "climb_desc.C" is at address 0x8315f86
<calculateCruiseParamsNoTurn(TAAM_AIRCRAFT const *,
ClimbDescParams::InputData const &, ClimbDescParams::InputFlags const &,
ClimbDescParams::OutputData &, bool)+146> but contains no
code./staff/johnp/taamMainline/taam/src/sim/climb_desc.C:3527:134689:beg:0x8315f86
(gdb) break climb_desc.C:3556
Breakpoint 1 at 0x83160b4: file climb_desc.C, line 3556.
(gdb) attach 24013
[Thread debugging using libthread_db enabled]
[New Thread -1221637728 (LWP 24013)]
0xb75ebc32 in _dl_sysinfo_int80 () from /lib/ld-linux.so.2
(gdb) cont
[Switching to Thread -1221637728 (LWP 24013)]
                                                                                
Breakpoint 1, calculateCruiseParamsNoTurn (acft=0xb125bc38,
inputData=@0xbfffa800, inputFlags=@0xbfffa8c0, outputData=@0xbfffa778,
cruiseAtEndOfFpitem=false) at climb_desc.C:3556
(gdb) next
[SNIP lot's of 'next']
(gdb) next
(gdb) cont
                                                                                
Breakpoint 1, calculateCruiseParamsNoTurn (acft=0xb125bc38,
inputData=@0xbfffab08, inputFlags=@0xbfffaaf8, outputData=@0xbfffaa70,
cruiseAtEndOfFpitem=true) at
climb_desc.C:3556
(gdb) next
(gdb) next
(gdb) next
(gdb) next
(gdb) next
(gdb) next
(gdb) next
(gdb) next
(gdb) cont
                                                                                
Breakpoint 1, calculateCruiseParamsNoTurn (acft=0xb125bc38,
inputData=@0xbfffaaf8, inputFlags=@0xbfffaae8, outputData=@0xbfffaa60,
cruiseAtEndOfFpitem=true) at
climb_desc.C:3556
(gdb) next
(gdb) next
(gdb) next
(gdb) next
(gdb) next
(gdb) next
(gdb) next
(gdb) next
(gdb) cont
                                                                                
Breakpoint 1, calculateCruiseParamsNoTurn (acft=0xb1260648,
inputData=@0xbfffa800, inputFlags=@0xbfffa8c0, outputData=@0xbfffa778,
cruiseAtEndOfFpitem=false) at climb_desc.C:3556
(gdb) next
(gdb) next
(gdb) step
(gdb) step
(gdb) step
(gdb) step
(gdb) step
{anonymous}::getHeadWindAndAltBand (windDistList=@0xbfffa86c,
flightDist=3150.6175099627326, tas=98.481690641100798,
topAlt=@0xbfffa468, bottomAlt=@0xbfffa468,
topAltWasWindLevel=@0xbfffa477, useInputHeading=false, inputHeading=0)
at climb_desc.C:155
(gdb) next
[SNIP lot's of 'next']
(gdb) next
(gdb) step
Adm::WindVectorAlgebra::solveWind (airSpeed=98.481690641100798,
airHeading=@0xbfffa378, windSpeed=0, windDirection=0,
groundSpeed=@0xbfffa380, groundHeading=291.71716428240444,
windTooHigh=@0xbfffa38f) at AdmWindVectorAlgebra.C:41
/staff/johnp/taamMainline/taam/src/adm/Algorithms/AdmWindVectorAlgebra.C:41:1123:beg:0x89bd872
(gdb) next
(gdb) next
(gdb) next
(gdb) next
(gdb) next
(gdb) next
{anonymous}::getHeadWindAndAltBand (windDistList=@0xbfffa86c,
flightDist=3150.6175099627326, tas=98.481690641100798,
topAlt=@0xbfffa468, bottomAlt=@0xbfffa468,
topAltWasWindLevel=@0xbfffa477, useInputHeading=false, inputHeading=0)
at climb_desc.C:221
(gdb) next
[SNIP lot's of 'next']
(gdb) next
calculateCruiseParamsNoTurn (acft=0xb1260648, inputData=@0xbfffa800,
inputFlags=@0xbfffa8c0, outputData=@0xbfffa778,
cruiseAtEndOfFpitem=false) at climb_desc.C:3566
(gdb) next
(gdb) kill
(gdb) attach 24272
0xb75ebc32 in _dl_sysinfo_int80 () from /lib/ld-linux.so.2
(gdb) cont
                                                                                
Breakpoint 1, calculateCruiseParamsNoTurn (acft=0xb125bc38,
inputData=@0xbfffc550, inputFlags=@0xbfffc610, outputData=@0xbfffc4c8,
cruiseAtEndOfFpitem=false) at climb_desc.C:3556
(gdb) cont
                                                                                
Breakpoint 1, calculateCruiseParamsNoTurn (acft=0xb125bc38,
inputData=@0xbfffc858, inputFlags=@0xbfffc848, outputData=@0xbfffc7c0,
cruiseAtEndOfFpitem=true) at
climb_desc.C:3556
(gdb) next
(gdb) next
(gdb) step
(gdb) step
(gdb) step
(gdb) step
(gdb) step
{anonymous}::getHeadWindAndAltBand (windDistList=@0xbfffc8c4,
flightDist=1728073.9689208211, tas=97.781816722995188,
topAlt=@0xbfffc4c8, bottomAlt=@0xbfffc4c8,
topAltWasWindLevel=@0xbfffc4d7, useInputHeading=false, inputHeading=0)
at climb_desc.C:155
(gdb) next
[SNIP lot's of 'next']
(gdb) next
(gdb) up
#1  0x08316113 in calculateCruiseParamsNoTurn (acft=0xb125bc38,
inputData=@0xbfffc858, inputFlags=@0xbfffc848, outputData=@0xbfffc7c0,
cruiseAtEndOfFpitem=true) at climb_desc.C:3565
(gdb) up
#2  0x0831214b in calculateClimbParams (acft=0xb125bc38,
inputData=@0xbfffca58,
inputFlags=@0xbfffca38, outputData=@0xbfffc9b0) at climb_desc.C:1798
(gdb) up
#3  0x0854e6a2 in FlightPlanBuilder::Impl::canFly (this=0x9b05ae8,
startAlt=@0xbfffcb78, finalAlt=@0xbfffcb80, dist=@0xbfffcb60,
startIAS=@0xbfffcbe8, finalIAS=@0xbfffcbf0, turnOn=@0xbfffcb68,
turnOff=@0xbfffcb70, maxCorrOn=@0x9af8490, maxCorrOff=@0x9af88c8,
climbEarly=true, descendEarly=false,
startDistAlongFlightPlan=@0x9af8470, endDistAlongFlightPlan=@0x9af88a8,
speedRateFlag=Norm, output=0x0)
at FlightPlanBuilder.C:1010
/staff/johnp/taamMainline/taam/src/sim/FlightPlanBuilder.C:1010:30601:beg:0x854e6a2
(gdb) down
#2  0x0831214b in calculateClimbParams (acft=0xb125bc38,
inputData=@0xbfffca58,
inputFlags=@0xbfffca38, outputData=@0xbfffc9b0) at climb_desc.C:1798
(gdb) down
#1  0x08316113 in calculateCruiseParamsNoTurn (acft=0xb125bc38,
inputData=@0xbfffc858, inputFlags=@0xbfffc848, outputData=@0xbfffc7c0,
cruiseAtEndOfFpitem=true) at climb_desc.C:3565
(gdb) down
#0  {anonymous}::getHeadWindAndAltBand (windDistList=@0xbfffc8c4,
flightDist=1728073.9689208211, tas=97.781816722995188,
topAlt=@0xbfffc4c8, bottomAlt=@0xbfffc4c8,
topAltWasWindLevel=@0xbfffc4d7, useInputHeading=false, inputHeading=0)
at climb_desc.C:230
(gdb) up
#1  0x08316113 in calculateCruiseParamsNoTurn (acft=0xb125bc38,
inputData=@0xbfffc858, inputFlags=@0xbfffc848, outputData=@0xbfffc7c0,
cruiseAtEndOfFpitem=true) at climb_desc.C:3565
(gdb) up
#2  0x0831214b in calculateClimbParams (acft=0xb125bc38,
inputData=@0xbfffca58,
inputFlags=@0xbfffca38, outputData=@0xbfffc9b0) at climb_desc.C:1798
(gdb) up
#3  0x0854e6a2 in FlightPlanBuilder::Impl::canFly (this=0x9b05ae8,
startAlt=@0xbfffcb78, finalAlt=@0xbfffcb80, dist=@0xbfffcb60,
startIAS=@0xbfffcbe8, finalIAS=@0xbfffcbf0, turnOn=@0xbfffcb68,
turnOff=@0xbfffcb70, maxCorrOn=@0x9af8490, maxCorrOff=@0x9af88c8,
climbEarly=true, descendEarly=false,
startDistAlongFlightPlan=@0x9af8470, endDistAlongFlightPlan=@0x9af88a8,
speedRateFlag=Norm, output=0x0)
at FlightPlanBuilder.C:1010
(gdb)
Segmentation fault








Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]