[Lazarus] Single-stepping assembler

Martin lazarus at mfriebe.de
Sun Sep 11 13:37:13 CEST 2011

On 11/09/2011 08:30, Mark Morgan Lloyd wrote:
> Martin wrote:
>> On 10/09/2011 21:16, Martin wrote:
>>> On 10/09/2011 20:50, Mark Morgan Lloyd wrote:
>>>> << TCmdLineDebugger.ReadLn "(gdb) "
>>>> >> TCmdLineDebugger.SendCmdLn "set inferior-tty /dev/pts/2"
>>> Ok, so we may have 2 issues at and.
>>> the debugger never returns on
>>>   set inferior-tty /dev/pts/2
>>> which should have been created by the IDE.
>>> or the IDE never gets the result, because something went wrong with 
>>> creating it => but then it should not have gotten as far as sending 
>>> the above...
>>> So still the below stacktrace,. shows the IDE waiting for gdb to 
>>> return output. yet it should do processMessages, so the ide should 
>>> be responsive.
>>> Strange
>>> anyway:
>>> in options, on the debugger tab (where you select /usr/bin/gdb), is 
>>> a list of setting (in an object inspector like grid)
>>> One of the settings is
>>>    ConsoleTty
>>> it is empty by default.
>>> Put /dev/null in there  and see if it helps.
>>> Or if you need to see the debugged apps terminal output, then open a 
>>> terminal (xterm, or any other) yourself, type "pty", and it will 
>>> give you something like /dev/pts/<n>  which you can put into that 
>>> setting (so long as you leave that terminal open.
>>> I wonder why that hangs. Nothing there should have changed...
>>> unless some file/handle stuff in fpc changed? getpt() fcntl() 
>>> tcsetattr() __write()  ....
>>>> ^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
>> Argh, no => I overlooked the top 2 frames...
>> I do NOT like them (I do not know yet why not ..)
>> try the /dev/null
>> It should work around
>> At this point there should not be any data to be read.
>> So the question is why on your system is read triggered.
> Still locks up I'm afraid.

You are right, sorry, there is a bunch of nested {$IFDEF}... (I must 
have had a bad day when I put that in)

the pseudo console is still accessed, even if you specify another one => 
I am fixing that now.... (next hour)

Still interested to know if the current trunk (error checking) helps.

More information about the Lazarus mailing list