GDB internal error when setting some breakpoints in C++ shared library
GDB internal error when setting some breakpoints in C++ shared library
- Subject: GDB internal error when setting some breakpoints in C++ shared library
- From: "James Larcombe" <email@hidden>
- Date: Wed, 8 Feb 2006 12:20:47 -0000
Our application is built from a number of static libraries, all written in
C++. I've been having consistent problems when setting certain breakpoints
in Xcode. The application quits without warning shortly after the breakpoint
is set and Xcode reports that "the program has quit with exit type 1 but the
debugger is still running".
In an attempt to get a reproducable case to submit a bug report, I tried
debugging with GDB from the command line. This gave the following error:
/SourceCache/gdb/gdb-437/src/gdb/gdbtypes.c:600: internal-error: make_cv_type: Assertion
`TYPE_OBJFILE (*typeptr) == TYPE_OBJFILE (type) || (TYPE_STUB (*typeptr) || TYPE_IS_OPAQUE
(*typeptr))' failed.
This happens consistently on every method of some of my classes, but other
classes work fine.
Googling this error threw up a couple of interesting messages from Apple's
Jim Ingham - see
http://lists.apple.com/archives/xcode-users/2005/Feb/msg00006.html
and
http://sources.redhat.com/ml/gdb-patches/2004-05/msg00397.html
The first of these suggests that the problem is related to the use of
forward declarations in some way, so I made a simple project that used a
forward declaration to a type in a static library, but unfortunately I was
able to debug this with no problems.
My question is: does anyone have any further insight into this problem that
would help me to work out how to reproduce it in a minimal case?
I turned on the GDB log from Xcode and while I don't want to post the whole
thing to a public forum perhaps the bits at the end are useful?
# Enqueue seq in Interrupt Handler Q: <PBXGDB_NewBreakpointSequence: 0x17558f40> t=186.378101
Tepoch=1139400369.993695
# Initiating interrupt t=186.378169 Tepoch=1139400369.993763
-> 0-exec-interrupt
<- 0^done
# processing result t=186.390732 Tepoch=1139400370.006326
<-
174*stopped,reason="signal-received",signal-name="SIGINT",signal-meaning="Interrupt",thread-id="1"
# processing result t=186.391172 Tepoch=1139400370.006766
# Start interrupt handling t=186.391214 Tepoch=1139400370.006808
# Executing Sequence: <PBXGDB_NewBreakpointSequence: 0x17558f40> t=186.391261
Tepoch=1139400370.006855
# Passed verification of state before break create command t=186.391840 Tepoch=1139400370.007434
-> 175-break-insert -f "\"MyClass.cpp:1314\""
# PBXGDB_MICreateFileBreakpointCommand t=186.391909 Tepoch=1139400370.007503
<- (gdb)
Note that this problem occurs when the breakpoint is set, not when it is hit
(it never gets that far), although I'm also having debugger crashes when
hitting breakpoints that do get set correctly (and with the 'pause' button).
This is obviously a major impediment to my work at the moment, so I'm keen
to work out what's going wrong as quickly as possible.
James
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Xcode-users mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden