[fpc-pascal] How to analyze a core dump?

Luca Olivetti luca at ventoso.org
Tue Jun 26 19:07:07 CEST 2007


En/na Jonas Maebe ha escrit:
> 
> On 25 jun 2007, at 22:44, Luca Olivetti wrote:
> 
>> En/na Jonas Maebe ha escrit:
>>> On 14 jun 2007, at 19:04, Luca Olivetti wrote:
>>>> No suggestions? Is there some special option (apart from -g) that I 
>>>> should specify to compile/link my program?
>>> No. But the garbage backtrace means that either your gdb cannot parse 
>>> the signal handler frame, or that your program corrupted the call stack.
>>
>> Well, I'm starting to get desperate
> 
> Try compiling everything with -gv and using valgrind

running under valgrind I cannot reproduce the segment violation :-(
I should read valgrind documentation to interpret the data it prints 
out, however there's something that strikes me:

==5051== Thread 1:
==5051== Conditional jump or move depends on uninitialised value(s)
==5051==    at 0x808DB59: BUTLER_TBUTLERPHONE_$__RECEIVE$ANSISTRING 
(butler.pas:444)
==5051==    by 0x808F7B4: BUTLER_TSTATUSTHREAD_$__RECEIVE (butler.pas:697)
==5051==    by 0x806BAA0: CLASSES_CHECKSYNCHRONIZE$LONGINT (in 
/home/luca/botphone/botphone)
==5051==    by 0x804A96B: main (botphone.lpr:568)

where line 444 is:

442:  L:=length(s);
443:  if L<1 then exit;
444:  case s[1] of

so I can't see how it could possibly be uninitialized.

Bye
-- 
Luca



More information about the fpc-pascal mailing list