[Lazarus] Failing to run GDB via IDE on OpenSUSE 13.2 system
lazarus at mfriebe.de
Mon Feb 9 20:41:39 CET 2015
On 09/02/2015 17:28, Graeme Geldenhuys wrote:
> Last week I setup a new VM with OpenSUSE 13.2 64-bit. I also installed
> GDB (v7.8) from the standard package repository.
> I manually installed FPC 2.6.4 (tar.gz release archive) and Lazarus
> trunk. I can compile and run programs without problem. I also configured
> GDB in the IDE and made sure my program compiles with debug info
> enabled. But trying to debug an application via Lazarus IDE gives me an
> instant "Internal Error" and GDB stops.
With an "oops the debugger ..." message?
> Below is the IDE debugger window
> &"../../gdb/minsyms.c:410: internal-error: Section index is
> uninitialized\nA problem internal to GDB has been detected,\nfurther
> debugging may prove unreliable."
This means gdb crashed.
I noted in my tests that gdb 7.8.0 and gdb 7.8.1 crash way easier than
the 7.7 versions. I recommend to downgrade gdb.
Since you use Lazarus trunk, you can also install the package
and try to change (in tools / options / debugger) to "fpdebug" (the one
that does NOT say "with gdb") which is gdb free. However this is beta,
so not yet perfect.
As for it work in ddd. (which use gdb too does it?)
That is possible. Those crashes often happen on specific commands, or
when trying to inspect specific data (or a none existing identifier,
which may lead to gdb searching through (and touching) all symbols,
including those that lead to a crash).
Lazarus issues a lot more (or at least different) commands and queries
more info than ddd, because it attempts to make pascal expression,
readable to gdb. It also works around other issues of gdb such as
explicitly dereferencing the hidden pointers in (dyn) arrays or objects
if gdb needs this.
It also sends more initialization, attempting to figure what is possible
in your version of gdb, and what not.
As for the particular crash: This is the first time I see it crash at
Does your code use any objects/classes at all? If not maybe just add one
More information about the Lazarus