[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