Thread overview | ||||||||
---|---|---|---|---|---|---|---|---|
|
August 11, 2011 Catch exception from external library | ||||
---|---|---|---|---|
| ||||
Hi, Is there any way to catch unhandled exceptions thrown by external libraries? I am calling an external C library function, which works fine in release mode, however in debug mode it throws a SIGSEV. I would like to debug later parts of the code, but can;t get past this function when debugging because of the exception. I have tried putting the function call in try/catch, tried a scope(failure) and tried collectException() from std.exception. Is it possible to catch these exceptions? Thanks alot, Callum |
August 11, 2011 Re: Catch exception from external library | ||||
---|---|---|---|---|
| ||||
Posted in reply to Callum Anderson | On Thursday, August 11, 2011 06:53:57 Callum Anderson wrote:
> Hi,
>
> Is there any way to catch unhandled exceptions thrown by external libraries? I am calling an external C library function, which works fine in release mode, however in debug mode it throws a SIGSEV. I would like to debug later parts of the code, but can;t get past this function when debugging because of the exception.
>
> I have tried putting the function call in try/catch, tried a scope(failure)
> and tried collectException() from std.exception. Is it possible to catch
> these exceptions?
SIGSEV is a signal, not an exception. No exception handling code will do anything with it. And pure c code _can't_ throw exceptions of any kind, because C has no exceptions (it _might_ be possible for an exception to come out of C code which called code from another language which _does_ have ecxeptions, but I'm not sure). If you want to handle SIGSEGV, you need a use a signal handler.
- Jonathan M Davis
|
August 11, 2011 Re: Catch exception from external library | ||||
---|---|---|---|---|
| ||||
Posted in reply to Jonathan M Davis | Thanks, SIGSEGV was a brain malfunction on my part sorry. The error was SIG Unhandled Exception. And I should have said I was calling a C-Api layer on a C++ library. Does that change anything? Thanks again, Callum |
August 11, 2011 Re: Catch exception from external library | ||||
---|---|---|---|---|
| ||||
Posted in reply to Callum Anderson | On Thursday, August 11, 2011 07:29:35 Callum Anderson wrote:
> Thanks,
> SIGSEGV was a brain malfunction on my part sorry. The error was SIG
> Unhandled Exception. And I should have said I was calling a C-Api layer on
> a C++ library. Does that change anything?
> Thanks again,
> Callum
I really don't know what happens with C++ exceptions that get thrown when the C++ is wrapped in a C API. So, I can't really help you there. The best that I could do is google for it.
- Jonathan M Davis
|
August 11, 2011 Re: Catch exception from external library | ||||
---|---|---|---|---|
| ||||
Attachments:
| On Thu, 2011-08-11 at 00:42 -0700, Jonathan M Davis wrote: > On Thursday, August 11, 2011 07:29:35 Callum Anderson wrote: > > Thanks, > > SIGSEGV was a brain malfunction on my part sorry. The error was SIG > > Unhandled Exception. And I should have said I was calling a C-Api layer on > > a C++ library. Does that change anything? > > Thanks again, > > Callum > > I really don't know what happens with C++ exceptions that get thrown when the C++ is wrapped in a C API. So, I can't really help you there. The best that I could do is google for it. Join ACCU http://accu.org. Get on their general mailing list. Ask there, and you'll either get an answer immediately or an answer will emerge from the ensuing debate. ACCU has a high percentage of very highly knowledgeable and skilled C++ folk, including lots of people on the standards committees. ACCU also has Java, C#, Python, agile process, etc. folk and activity, but given it is an organization originally created from a merge of the C User Group, and the European C++ user Group . . . -- Russel. ============================================================================= Dr Russel Winder t: +44 20 7585 2200 voip: sip:russel.winder@ekiga.net 41 Buckmaster Road m: +44 7770 465 077 xmpp: russel@russel.org.uk London SW11 1EN, UK w: www.russel.org.uk skype: russel_winder |
August 11, 2011 Re: Catch exception from external library | ||||
---|---|---|---|---|
| ||||
Posted in reply to Russel Winder | Ok thanks for the help, wasn't sure if I was missing something obvious. Cheers, Callum |
Copyright © 1999-2021 by the D Language Foundation