[Lazarus] SIGSEGV with gdb.exe

Martin lazarus at mfriebe.de
Wed Apr 20 12:24:58 CEST 2011


On 20/04/2011 09:20, Kjow wrote:
>
> from the log you suggested me:
> "
> *stopped,reason="signal-received",signal-name="SIGSEGV",signal-meaning="Segmentation
> fault",frame={addr="0x1000b481",func="CMGxSrv!?removeCOMHook@@YAHXZ",args=[],from="C:\\Windows\\SysWOW64\\HsSrv.dll"},thread-id="1",stopped-threads="all"
> "
>
> HsSrv.dll is part of Asus Xonar DX/D2X drivers and looking for it I
> found a solution:
...
> It works, but unfortunately this disables OpenAL surround... needed to
> me (in my project). :(
>
> Is it possible to avoid pass a specific dll to gdb?

I have no idea. I thought about the same, when I encountered the issue 
with bitdefender....
I also know that it does not happen in every debugger, bitdefender works 
in the delphi debugger....

Anyway, I couldn't solve it yet, and for now I got rid of bitdefender, 
so I am not going to do any work on it soon.

Another idea...
GDB is ot very good at signal handling (SigSegV). Well it catches them 
reliable, but gdb can not continue afterwards. If those DLL 
intentionally throw a sigsegv, after installing their own handler, then 
that may throw off gdb, but not other debuggers. This may be a means off 
those DLL to protect them self against reverse engineering.

http://www.delorie.com/gnu/docs/gdb/gdb_39.html
You could play with the settings, but you would have to modify the IDE, 
(debugger/gdbmidebugger.pp)
You can insert code before the line 2950 "    ExecuteCommand('set width 
50000', []);"

Or maybe easier, run the app in gdb, by hand.

I am not going to reinstall bitdefender to test that....  Maybe one day 
on my laptop, but not to soon.

Martin




More information about the Lazarus mailing list