[Lazarus] Problem with syncompletion.pas

Zaher Dirkey parmaja at gmail.com
Mon Aug 3 16:53:21 CEST 2009


Try  (note you need to add 4, to get to the next string)

PChar(^LONGINT(^LONGINT(@t)^+0)^)
PChar(^LONGINT(^LONGINT(@t)^+4)^)
PChar(^LONGINT(^LONGINT(@t)^+8)^)

and for the length of array (minus 4)
^LONGINT(^LONGINT(@t)^-4)^

Read also
http://forum.lazarus.freepascal.org/index.php/topic,4763.msg22954.html#msg22954 
(just strings are a pointer them self, so they need one level more)
http://wiki.lazarus.freepascal.org/GDB_Debugger_Tips#Dynamic_Arrays  
(updated)

If that doesn't help, then it wont work. (or i don't know how)

Problem is that the debugger doesn't understand the pascal concept. so 
you unfortunately need a lot of  understanding, of how fpc encodes your 
data, what is a pointer, what is which kind of record....

It is improving in 2.3.1 (and maybe even more with dwarf).

If nothing helps:
LCLProc.debugln
writeln


Silvio Clecio wrote:
> Em 2/8/2009 19:58, Martin escreveu:
>> please also read
>> http://wiki.lazarus.freepascal.org/GDB_Debugger_Tips
>>
>> Martin wrote:
>>> Andrew Brunner wrote:
>>>> Thanks Silvio,
>>>>
>>>> I'm not having a problem a problem with code running. I'm not able to
>>>> Inspect the contents of VStringArray while debugging via GDB in
>>>> Ubuntu.
>>>>
>>>> Can you inspect the variable VStringArray? How about VStringArray[0]?
>>>> I can not.
>>>>
>>>> This is a fresh build of FPC and Lazarus from TRUNK and a BRAND new
>>>> install of Ubuntu 9.04.
>>>>
>>>
>>> There a various problems, like this. It is an issue between fpc and 
>>> gdb.
>>> A lot may depend on the version of fpc and the version of gdb you use.
>>>
>>> A few thinks you can try, but I don't know if they will work for you.
>>>
>>> Try Dwarf versu stabs (Compiler option in Lazarus), Tab: Linking
>>>
>>> While debugging the following has worked for me under window (not sure
>>> if I used dwarf, I think not). And it only worked if there was an
>>> explicit type:
>>> type TStringArray = Array of String; var a: TStringArray
>>> but not for
>>> var a: Array of String;
>>>
>>> instead of
>>> a[0]
>>> I wrote (in the watch window)
>>> a^[0]
>
> Martin, thanks for the strength ;-) .
>
> With I showed, had no errors. I'm using now the following (see pictures):
>
> GDB - [http://www.4shared.com/file/122487107/bfb46cfd/gdb.html].
> Lazarus - [http://www.4shared.com/file/122487336/e01adbc6/lazarus.html].
>
> ps. Friends, I don't know much English but I try to help somehow. :-)





More information about the Lazarus mailing list