[Lazarus] Single-stepping assembler

Mark Morgan Lloyd markMLl.lazarus at telemetry.co.uk
Sat Sep 10 21:50:30 CEST 2011


Martin wrote:
> On 10/09/2011 19:13, Mark Morgan Lloyd wrote:
>>>
>>>> I've reverted from FPC 2.7.1 to 2.4.4 which was previously OK (apart 
>>>> from floating-point code generation issues) without significant 
>>>> change to the IDE behaviour.
>>>>
>>>
>>> And did that help?
>>
>>
>> Not at all I'm afraid, i.e. the problem appears to stay with Lazarus 
>> rather than with the compiler.
>>
> 
> If you start Lazarus inside gdb? and then interrupt it, and try to get a 
> bt?

With debugging symbols, with hints disabled, with gdb. Console output 
follows, not sure you're going to like it.

   >> TCmdLineDebugger.SendCmdLn "set width 50000"
   << TCmdLineDebugger.ReadLn "&"set width 50000\n""
   [Debugger] Log output: &"set width 50000\n"
   << TCmdLineDebugger.ReadLn "^done"
   << TCmdLineDebugger.ReadLn "(gdb) "
   >> TCmdLineDebugger.SendCmdLn "set inferior-tty /dev/pts/2"
^C
Program received signal SIGINT, Interrupt.
[Switching to Thread 0xf7f6daa0 (LWP 13397)]
0xf7f0f25c in __read_nocancel () from /lib/libpthread.so.0
(gdb) bt
#0  0xf7f0f25c in __read_nocancel () from /lib/libpthread.so.0
#1  0x00ae7450 in TPSEUDOTERMINAL__READ (this=0xf61fe580, result=0x0)
     at /usr/local/share/lazarus-trunk/debugger/gdbmimiscclasses.pp:539
#2  0x00ae7570 in TPSEUDOTERMINAL__CHECKCANREAD (this=0xf61fe580)
     at /usr/local/share/lazarus-trunk/debugger/gdbmimiscclasses.pp:546
#3  0x00aae40c in TGDBMIDEBUGGER__PROCESSWHILEWAITFORHANDLES 
(this=0xf61cad20)
     at /usr/local/share/lazarus-trunk/debugger/gdbmidebugger.pp:6878
#4  0x00a72cd4 in TCMDLINEDEBUGGER__WAITFORHANDLES (AHANDLES=<incomplete 
type>, ATIMEOUT=-1, highAHANDLES=0,
     this=0xf61cad20) at 
/usr/local/share/lazarus-trunk/debugger/cmdlinedebugger.pp:166
#5  0x00a738e8 in TCMDLINEDEBUGGER__READLINE (APEEK=false, ATIMEOUT=-1, 
this=0xf61cad20, result=0x0)
     at /usr/local/share/lazarus-trunk/debugger/cmdlinedebugger.pp:423
#6  0x00a735bc in TCMDLINEDEBUGGER__READLINE (ATIMEOUT=-1, 
this=0xf61cad20, result=0x0)
     at /usr/local/share/lazarus-trunk/debugger/cmdlinedebugger.pp:352
#7  0x00aba070 in TGDBMIDEBUGGERCOMMAND__PROCESSRESULT (ARESULT={STATE = 
DSNONE, VALUES = 0x0, FLAGS = []},
     ATIMEOUT=-1, this=0xf5b7b980) at 
/usr/local/share/lazarus-trunk/debugger/gdbmidebugger.pp:9301
#8  0x00ab95bc in TGDBMIDEBUGGERCOMMAND__EXECUTECOMMAND 
(ACOMMAND=0xf5b94cd8 'set inferior-tty /dev/pts/2',
     ARESULT={STATE = DSNONE, VALUES = 0x0, FLAGS = []}, AFLAGS=[], 
ATIMEOUT=-1, this=0xf5b7b980)
     at /usr/local/share/lazarus-trunk/debugger/gdbmidebugger.pp:9123
#9  0x00ab9f88 in TGDBMIDEBUGGERCOMMAND__EXECUTECOMMAND 
(ACOMMAND=0x10d0e78 'set inferior-tty %s',
     AVALUES=<incomplete type>, ARESULT={STATE = DSNONE, VALUES = 0x0, 
FLAGS = []}, AFLAGS=[], ATIMEOUT=-1,
     highAVALUES=0, this=0xf5b7b980) at 
/usr/local/share/lazarus-trunk/debugger/gdbmidebugger.pp:9162
#10 0x00a9d074 in TGDBMIDEBUGGERCOMMANDSTARTDEBUGGING__DOEXECUTE 
(this=0xf5b7b980)
     at /usr/local/share/lazarus-trunk/debugger/gdbmidebugger.pp:3813
#11 0x00abe1e4 in TGDBMIDEBUGGERCOMMAND__EXECUTE (this=0xf5b7b980)
     at /usr/local/share/lazarus-trunk/debugger/gdbmidebugger.pp:9904
#12 0x00aaa150 in TGDBMIDEBUGGER__RUNQUEUE (this=0xf61cad20)
     at /usr/local/share/lazarus-trunk/debugger/gdbmidebugger.pp:5863
#13 0x00aaaa98 in TGDBMIDEBUGGER__QUEUECOMMAND (ACOMMAND=0xf5b7b980, 
FORCEQUEUE=false, this=0xf61cad20)
     at /usr/local/share/lazarus-trunk/debugger/gdbmidebugger.pp:5984
#14 0x00aae394 in TGDBMIDEBUGGER__STARTDEBUGGING 
(ACONTINUECOMMAND=0xf5ccfaa0, this=0xf61cad20)
     at /usr/local/share/lazarus-trunk/debugger/gdbmidebugger.pp:6867
#15 0x00aae29c in TGDBMIDEBUGGER__STARTDEBUGGING 
(ACONTINUECOMMAND=ECTCONTINUE, this=0xf61cad20)
     at /usr/local/share/lazarus-trunk/debugger/gdbmidebugger.pp:6851
#16 0x00aabd7c in TGDBMIDEBUGGER__GDBRUN (this=0xf61cad20)
     at /usr/local/share/lazarus-trunk/debugger/gdbmidebugger.pp:6228
#17 0x00aad050 in TGDBMIDEBUGGER__REQUESTCOMMAND (ACOMMAND=DCRUN, 
APARAMS=<incomplete type>, highAPARAMS=-1,
     this=0xf61cad20) at 
/usr/local/share/lazarus-trunk/debugger/gdbmidebugger.pp:6641
#18 0x005cdf14 in TDEBUGGER__REQCMD (ACOMMAND=DCRUN, APARAMS=<incomplete 
type>, highAPARAMS=-1,
     this=0xf61cad20) at 
/usr/local/share/lazarus-trunk/debugger/debugger.pp:5454
#19 0x005ce030 in TDEBUGGER__RUN (this=0xf61cad20) at 
/usr/local/share/lazarus-trunk/debugger/debugger.pp:5468
#20 0x005bf1e4 in TDEBUGMANAGER__RUNDEBUGGER (this=0xf6b842f0) at 
debugmanager.pas:2220
#21 0x005b6dcc in TDEBUGMANAGER__ONRUNTIMER (SENDER=0xf6226c80, 
this=0xf6b842f0) at debugmanager.pas:661
#22 0x003512b4 in TCUSTOMTIMER__DOONTIMER (this=0xf6226c80) at 
customtimer.pas:181
#23 0x003511d8 in TCUSTOMTIMER__TIMER (this=0xf6226c80) at 
customtimer.pas:156
#24 0x00322b98 in GTKTIMERCB (DATA=0xf61f0fd0) at gtk2callback.inc:2430
#25 0xf7840b40 in ?? () from /usr/lib/libglib-2.0.so.0
#26 0xf7840b40 in ?? () from /usr/lib/libglib-2.0.so.0
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

0 1>markMLl at pye-dev-04:/usr/local/share/lazarus$ gdb --version
GNU gdb 6.8-debian
Copyright (C) 2008 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later 
<http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "sparc-linux-gnu".

-- 
Mark Morgan Lloyd
markMLl .AT. telemetry.co .DOT. uk

[Opinions above are the author's, not those of his employers or colleagues]




More information about the Lazarus mailing list