[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