LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

C++ wrapper; NIER overrides exception handler

I have a compiled LabVIEW DLL that I call from a C++ application under Windows 7.

 

I also use a handler for unknown exceptions, so that I can display something nice and output a crash report if something goes wrong. I was doing some tests with an artificial crash (e.g. write at 0x00000000), and it turns out some computers display the NI crash report screen ("We apologize for the inconvenience, ...") instead of executing my own error handler. This happens even if the crash is not anywhere near LabVIEW code, and it's giving me a bogus call stack that I can't do anything useful with.

 

If I kill the NI error reporting process (nierserver.exe), my handler gets correctly executed, so I am guessing that process somehow installs a different exception handler on my process.

 

In any case, what could I do to avoid NI screwing up my exception handler? I realize this is kind of a C++ question, but the problem probably requires knowledge on how the NI error reporting server (or whatever else is catching that exception) works.

 

Edit: This uses the LabVIEW 2012 f1, in case it matters.

0 Kudos
Message 1 of 1
(2,686 Views)