[Lazarus] Debugger stops in c dll even when no breakpoint set
Luca Olivetti
luca at wetron.es
Fri Oct 29 10:15:56 CEST 2021
El 28/10/21 a les 14:46, Martin Frb via lazarus ha escrit:
> On 28/10/2021 14:28, Christo Crause via lazarus wrote:
>>
>> On Thu, Oct 28, 2021 at 2:01 PM Luca Olivetti via lazarus
>> <lazarus at lists.lazarus-ide.org> wrote:
>>
>>
>> 77045AC4 cc int3
>>
>>
>> The Int3 instruction means break, so this is the expected behaviour.
>> If there is no debugger inserted break point for this location, it
>> must be compiled into the dll code. This means not stopping here will
>> be problematic, unless you use some kind of script to step over this
>> break instruction automatically. I do not think it is possible from
>> inside Lazarus, but haven't actually tried to work around something
>> similar before.
>>
>
>
> FpDebug refers unknown "int3" back to the application, and lets the
> application handle them itself.
>
> At least FpDebug does this by default. There is an option in the global
> settings to stop.
> But if the dll expects the int3, and therefore wants to handle it
> itself.....
Any hint on why it hits that int3?
Now I recompiled pascallog.c (I changed its location, no wonder lazarus
complained it couldn't find it), and lazarus instead of showing the
assembler window shows the c file stopping at the call to "free".
I checked and the pointer passed to "free" is the same that "malloc"
returned.
malloc ->
https://github.com/fluisgirardi/fpopen62541/blob/d95839c908657f58bf2fde4533625a61cbccb8c7/pascallog/pascallog.c#L59
free ->
https://github.com/fluisgirardi/fpopen62541/blob/d95839c908657f58bf2fde4533625a61cbccb8c7/pascallog/pascallog.c#L51
Bye
--
Luca Olivetti
Wetron Automation Technology http://www.wetron.es/
Tel. +34 93 5883004 (Ext.3010) Fax +34 93 5883007
More information about the lazarus
mailing list