Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / lazarus / 2014-04

"TGDBMIDebuggerInstruction: "-file-exec-and-symbols ", "

8 messages · 2 people · –

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

Marcos Douglas

Hi,

I'm using FPC 2.6.5 (fixes_2_6) and Lazarus trunk on Windows. The GDB is updated too, here:
http://svn.freepascal.org/svn/lazarus/binaries/i386-win32/gdb

I run my program using the IDE and when program closes the IDE returns the error below... and doesn't matter if I run on Debug mode or not.

ERROR:
While executing the command:
"TGDBMIDebuggerInstruction: "-file-exec-and-symbols ", " gdb reported:
"&"../../gdb-7.2/gdb/printcmd.c:1916: internal-error: clear_dangling_display_expressions: Assertion `objfile->pspace == solib->pspace' failed.\nA problem internal to GDB has been detected,\nfurther debugging may prove unreliable.""

Could you help me?

Regards,
Marcos Douglas

Reply by email

Martin Frb
to Marcos Douglas
Marcos Douglas wrote 20 lines
Hi, I'm using FPC 2.6.5 (fixes_2_6) and Lazarus trunk on Windows. The GDB is updated too, here: http://svn.freepascal.org/svn/lazarus/binaries/i386-win32/gdb I run my program using the IDE and when program closes the IDE returns the error below... and doesn't matter if I run on Debug mode or not. ERROR: While executing the command: "TGDBMIDebuggerInstruction: "-file-exec-and-symbols "," gdb reported: "&"../../gdb-7.2/gdb/printcmd.c:1916: internal-error: clear_dangling_display_expressions: Assertion `objfile->pspace == solib->pspace' failed.\nA problem internal to GDB has been detected,\nfurther debugging may prove unreliable."" Could you help me?

Looks like a bug in gdb to me. Could be anything.

It may be fixed in later versions of gdb. (7.7 is current) But for 32bit windows 7.2 is still considered the best choice. (this is due to http://sourceware.org/bugzilla/show_bug.cgi?id=14018 / happens often after fileopen/close dialog)

I have not yet tested 7.7 with the IDE, but if you accept the above bug, 7.6 was tested with the IDE and the IDE deals with it. (And 7.7 is probably compatible too).
Yet 7.5.9 to 7.6.1 were terrible unstable. (7.7 not tested). 7.5.1 was fine, except for the above.

Since the above error only happens after the debug session, it will only affect the next session. And it adds the clicks to confirm the error.

As for the next debug session, there is a checkbox in the options "Reset debugger after each run"

-----------
The only other thing I can thing off, and this is just a guess: The error points to something with dll (solib). Sometimies gdb has issues with debug info it finds on dll. try
http://wiki.lazarus.freepascal.org/GDB_Debugger_Tips#gdb.exe_has_stopped_working in the field "debugger_startup_options" enter: --eval-command="set auto-solib-add off"

But I have no idea if that is going to change anything.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus/attachments/20140417/3a5bece0/attachment.html>

Reply by email

Marcos Douglas
to Martin Frb
Martin Frb wrote 41 lines
On 17/04/2014 04:46, Marcos Douglas wrote: Hi, I'm using FPC 2.6.5 (fixes_2_6) and Lazarus trunk on Windows. The GDB is updated too, here: http://svn.freepascal.org/svn/lazarus/binaries/i386-win32/gdb I run my program using the IDE and when program closes the IDE returns the error below... and doesn't matter if I run on Debug mode or not. ERROR: While executing the command: "TGDBMIDebuggerInstruction: "-file-exec-and-symbols ", " gdb reported: "&"../../gdb-7.2/gdb/printcmd.c:1916: internal-error: clear_dangling_display_expressions: Assertion `objfile->pspace == solib->pspace' failed.\nA problem internal to GDB has been detected,\nfurther debugging may prove unreliable."" Could you help me? Looks like a bug in gdb to me. Could be anything. It may be fixed in later versions of gdb. (7.7 is current) But for 32bit windows 7.2 is still considered the best choice. (this is due to http://sourceware.org/bugzilla/show_bug.cgi?id=14018 / happens often after fileopen/close dialog) I have not yet tested 7.7 with the IDE, but if you accept the above bug, 7.6 was tested with the IDE and the IDE deals with it. (And 7.7 is probably compatible too). Yet 7.5.9 to 7.6.1 were terrible unstable. (7.7 not tested). 7.5.1 was fine, except for the above. Since the above error only happens after the debug session, it will only affect the next session. And it adds the clicks to confirm the error. As for the next debug session, there is a checkbox in the options "Reset debugger after each run"

My program uses a COM dll... maybe this is the problem?

Show quoted text 8 lines
The only other thing I can thing off, and this is just a guess: The error points to something with dll (solib). Sometimies gdb has issues with debug info it finds on dll. try http://wiki.lazarus.freepascal.org/GDB_Debugger_Tips#gdb.exe_has_stopped_working in the field "debugger_startup_options" enter: --eval-command="set auto-solib-add off" But I have no idea if that is going to change anything.

This worked, thank you!

Best regards,
Marcos Douglas

Reply by email

Martin Frb
to Marcos Douglas
Marcos Douglas wrote 8 lines
On Thu, Apr 17, 2014 at 11:40 AM, Martin Frb wrote: > http://wiki.lazarus.freepascal.org/GDB_Debugger_Tips#gdb.exe_has_stopped_working > in the field "debugger_startup_options" enter: --eval-command="set > auto-solib-add off" > > But I have no idea if that is going to change anything. This worked, thank you!

Since this "fixes" a variety of gdb issues, I added an option "DisableLoadSymbolsForLibraries" True/False.

This is in trunk, and 1.2.3 (will be is 1.2.4)

Reply by email

Martin Frb
to Martin Frb
Martin Frb wrote 15 lines
On 18/04/2014 17:09, Marcos Douglas wrote: > On Thu, Apr 17, 2014 at 11:40 AM, Martin Frb wrote: >> http://wiki.lazarus.freepascal.org/GDB_Debugger_Tips#gdb.exe_has_stopped_working >> >> in the field "debugger_startup_options" enter: --eval-command="set >> auto-solib-add off" >> >> But I have no idea if that is going to change anything. > This worked, thank you! > Since this "fixes" a variety of gdb issues, I added an option "DisableLoadSymbolsForLibraries" True/False. This is in trunk, and 1.2.3 (will be is 1.2.4)

BTW completely forgot, there also is

Show quoted text 11 lines
WarnOnInternalError Default true. If set to False, internal errors by gdb will be ignored by the IDE. Yet that does not change, that gdb did have an internal error, and that debugging may report incorrect data, or dis-behave in anyway. Neither will it prevent follow up error. It simple skips informing the user, yet fixes nothing. Leave on true, unless you get repeatedly the same internal error, and have tested well, that it does not affect you. (Then the warning dialog would be annoying, and you may want to skip it)

Which together with "Reset debugger after each run" would have done as well.

But would have the side effect of hiding potential other warnings, leaving you unaware of problems.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus/attachments/20140419/2b5ffb25/attachment.html>

Reply by email

Marcos Douglas
to Martin Frb
Martin Frb wrote 37 lines
On 18/04/2014 23:48, Martin Frb wrote: On 18/04/2014 17:09, Marcos Douglas wrote: On Thu, Apr 17, 2014 at 11:40 AM, Martin Frb wrote: http://wiki.lazarus.freepascal.org/GDB_Debugger_Tips#gdb.exe_has_stopped_working in the field "debugger_startup_options" enter: --eval-command="set auto-solib-add off" But I have no idea if that is going to change anything. This worked, thank you! Since this "fixes" a variety of gdb issues, I added an option "DisableLoadSymbolsForLibraries" True/False. This is in trunk, and 1.2.3 (will be is 1.2.4) BTW completely forgot, there also is WarnOnInternalError Default true. If set to False, internal errors by gdb will be ignored by the IDE. Yet that does not change, that gdb did have an internal error, and that debugging may report incorrect data, or dis-behave in anyway. Neither will it prevent follow up error. It simple skips informing the user, yet fixes nothing. Leave on true, unless you get repeatedly the same internal error, and have tested well, that it does not affect you. (Then the warning dialog would be annoying, and you may want to skip it) Which together with "Reset debugger after each run" would have done as well. But would have the side effect of hiding potential other warnings, leaving you unaware of problems.

For me "Reset debugger after each run" is enough. But what are the disadvantages to use this option?
Sorry my late, I was traveling.

Regards,
Marcos Douglas

Reply by email

Martin Frb
to Marcos Douglas
Marcos Douglas wrote 42 lines
On Fri, Apr 18, 2014 at 8:04 PM, Martin Frb wrote: > On 18/04/2014 23:48, Martin Frb wrote: > > On 18/04/2014 17:09, Marcos Douglas wrote: > > On Thu, Apr 17, 2014 at 11:40 AM, Martin Frb wrote: > > http://wiki.lazarus.freepascal.org/GDB_Debugger_Tips#gdb.exe_has_stopped_working > in the field "debugger_startup_options" enter: --eval-command="set > auto-solib-add off" > > But I have no idea if that is going to change anything. > > This worked, thank you! > > > Since this "fixes" a variety of gdb issues, I added an option > "DisableLoadSymbolsForLibraries" True/False. > > This is in trunk, and 1.2.3 (will be is 1.2.4) > > > BTW completely forgot, there also is > > WarnOnInternalError Default true. If set to False, internal errors by gdb > will be ignored by the IDE. Yet that does not change, that gdb did have an > internal error, and that debugging may report incorrect data, or dis-behave > in anyway. Neither will it prevent follow up error. It simple skips > informing the user, yet fixes nothing. Leave on true, unless you get > repeatedly the same internal error, and have tested well, that it does not > affect you. (Then the warning dialog would be annoying, and you may want to > skip it) > > > Which together with "Reset debugger after each run" would have done as well. > > But would have the side effect of hiding potential other warnings, leaving > you unaware of problems. For me "Reset debugger after each run" is enough. But what are the disadvantages to use this option? Sorry my late, I was traveling.

Starting the debugger my take a bit longer (may be less than a second, may be 2 or 3 secs).

Well, the first time, you debug, all is the same. No change.

But normally the IDE keeps using the running gdb, so it does not need to start a new instance of gdb. (Also saves sending a few initialization commands.) "Reset debugger" simply means, to close gdb, and start a new GDB. (Also create a new instance of the controller class in the IDE, but that is minor).

Reply by email

Marcos Douglas
to Martin Frb
Martin Frb wrote 64 lines
On 23/04/2014 19:29, Marcos Douglas wrote: > > On Fri, Apr 18, 2014 at 8:04 PM, Martin Frb wrote: >> >> On 18/04/2014 23:48, Martin Frb wrote: >> >> On 18/04/2014 17:09, Marcos Douglas wrote: >> >> On Thu, Apr 17, 2014 at 11:40 AM, Martin Frb wrote: >> >> >> http://wiki.lazarus.freepascal.org/GDB_Debugger_Tips#gdb.exe_has_stopped_working >> in the field "debugger_startup_options" enter: --eval-command="set >> auto-solib-add off" >> >> But I have no idea if that is going to change anything. >> >> This worked, thank you! >> >> >> Since this "fixes" a variety of gdb issues, I added an option >> "DisableLoadSymbolsForLibraries" True/False. >> >> This is in trunk, and 1.2.3 (will be is 1.2.4) >> >> >> BTW completely forgot, there also is >> >> WarnOnInternalError Default true. If set to False, internal errors by gdb >> will be ignored by the IDE. Yet that does not change, that gdb did have >> an >> internal error, and that debugging may report incorrect data, or >> dis-behave >> in anyway. Neither will it prevent follow up error. It simple skips >> informing the user, yet fixes nothing. Leave on true, unless you get >> repeatedly the same internal error, and have tested well, that it does >> not >> affect you. (Then the warning dialog would be annoying, and you may want >> to >> skip it) >> >> >> Which together with "Reset debugger after each run" would have done as >> well. >> >> But would have the side effect of hiding potential other warnings, >> leaving >> you unaware of problems. > > For me "Reset debugger after each run" is enough. But what are the > disadvantages to use this option? > Sorry my late, I was traveling. > Starting the debugger my take a bit longer (may be less than a second, may be 2 or 3 secs). Well, the first time, you debug, all is the same. No change. But normally the IDE keeps using the running gdb, so it does not need to start a new instance of gdb. (Also saves sending a few initialization commands.) "Reset debugger" simply means, to close gdb, and start a new GDB. (Also create a new instance of the controller class in the IDE, but that is minor).

Well, if the "price" to not have troubles is 1~3 secs, I prefer to pay. ;-)

Thanks,
Marcos Douglas

Reply by email