[Lazarus] Lazarus strange behaviour
Antonio Fortuny
a.fortuny at sitasoftware.lu
Tue Dec 20 16:13:45 CET 2011
Le 20/12/2011 14:27, Martin a écrit :
> On 20/12/2011 12:00, Antonio Fortuny wrote:
>>
>>
>> Le 20/12/2011 11:22, Martin a écrit :
>>>
>>> I don't think it is a problem with the installation.
>>>
>>> Have you tried a simple form with 3 lines in an event?
>> yep: it works !!
>> So, question: do you have an idea where to search for differences
>> between the two projects ?
>> The old console program and this new one with GUI which works ?
>
> The first steep I suggest would be to check my suspicion, that the
> address given in the error is indeed wrong
> "Error accessing memory address 0x72aa47b8"
>
> When reaching the breakpoint, before doing the fatal single step,
> please open the disassembler window.
> Note the current address, as well as look for any jump. (or copy and
> paste around 20 lines of assembler and mail them)
>
00402EB6 895dd4 mov %ebx,-0x2c(%ebp)
00402EB9 e8e2a70000 call 0x40d6a0 <fpc_initializeunits>
:-\ SyncFlat.lpr:36 SyncFlatDaemon :=
TSyncFlatDaemon.Create(nil); <<< instruction pointer
00402EBE ba54065d00 mov $0x5d0654,%edx
00402EC3 b900000000 mov $0x0,%ecx
00402EC8 b800000000 mov $0x0,%eax
00402ECD bb54065d00 mov $0x5d0654,%ebx
00402ED2 ff93c4000000 call *0xc4(%ebx)
00402ED8 a300606400 mov %eax,0x646000
SyncFlat.lpr:37 try
00402EDD 8d4df4 lea -0xc(%ebp),%ecx
00402EE0 8d55dc lea -0x24(%ebp),%edx
00402EE3 b801000000 mov $0x1,%eax
00402EE8 e8438e0000 call 0x40bd30 <fpc_pushexceptaddr>
00402EED e8beaf0000 call 0x40deb0 <fpc_setjmp>
00402EF2 50 push %eax
00402EF3 85c0 test %eax,%eax
00402EF5 0f85e3000000 jne 0x402fde <main+302>
SyncFlat.lpr:39
SyncFlatDaemon.DataModuleAfterInstall(nil);
00402EFB a100606400 mov 0x646000,%eax
00402F00 ba00000000 mov $0x0,%edx
00402F05 e866740300 call 0x43a370
<TSYNCFLATDAEMON__DATAMODULEAFTERINSTALL>
SyncFlat.lpr:43 OK := False;
00402F0A c6051060640000 movb $0x0,0x646010
SyncFlat.lpr:44 SyncFlatDaemon.DataModuleStart(nil, OK);
00402F11 b910606400 mov $0x646010,%ecx
00402F16 a100606400 mov 0x646000,%eax
00402F1B ba00000000 mov $0x0,%edx
00402F20 e8db740300 call 0x43a400
<TSYNCFLATDAEMON__DATAMODULESTART>
SyncFlat.lpr:45 AddLog(0, 'Provide 10 secs for main
thread to start', esInfo);
00402F25 6888130000 push $0x1388
00402F2A b900000000 mov $0x0,%ecx
00402F2F baf8895c00 mov $0x5c89f8,%edx
00402F34 b800000000 mov $0x0,%eax
00402F39 e8a25e0300 call 0x438de0 <ADDLOG>
SyncFlat.lpr:46 Sleep(10000);
step into in assembler screen works: Create in line 36 is entered and
step into continues until
I hit step over. The error screen appears immediately. But if I display
the assembler screen again and hit step into it continues to work.
>
> * Also you have not confirmed, that smart linking is off ( 2nd green
> box http://wiki.lazarus.freepascal.org/Debugger_Setup#Project_Options
> , do a "build" ctrl-F9 afterwards)
no -XX
>
> * On the same page you have the dropdown for "choose debug type info"
> which defaults to "automatic" => try selecting "dwarf (with sets)"
> Do NOT use "dwarf 3"
ok, still the same
>
> * An other possibility, in the tree on the left select "Other" (3
> below "linking"). It has a big input field "Custom Options". Enter -Xe
>
>
> If none of that helps it may be necessary to look at your code.
> - inline
> - try except/finally
> - external libraries (dll)
> ...
>
Unfortunately I don't have time enough. I'll do the job with my Win2003
server x86_64 but I'll come back first week of next year.
It has to work with W32 too.
Thank you very much for your effort anyway
Antonio.
> --
> _______________________________________________
> Lazarus mailing list
> Lazarus at lists.lazarus.freepascal.org
> http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
>
More information about the Lazarus
mailing list