Don't know where exception was thrown using google-test

to don something
don synonym
don in english
don urban dictionary
don clothing
don meaning slang
don medical abbreviation
don meaning italian

We are using Google Test as our C++ unit testing framework. But I ran into a painful situation and don't know how to deal with.

Basically, when there is an uncaught exception in the code, I got the following error message printed in the console and get a FAILED. Obviously, the exception is captures by google test. However, I have no information at all where is the exception was throw.

unknown file: error: SEH exception with code 0xc000005 thrown in the test body.

What I can do is debug and step through the code and I will eventually figure out where the problem is. But this is not very efficient as the project is big.

I want the debugger to stop at the line of uncaught exception and give me a nice call stack. Is there any settings in google test that I don't know of? Any other work around or suggestions will be very much appreciated.

Edit: I am looking for something like the following under Windows

Finally according to the answers, I found this settings for visual studio and everything works as the way I want now :)

An SEH Exception is NOT a C++ exception.

It is a windows exception that is throw outside of the standard C++ framework for exception handing (there is a different syntax for catching them).

The best way to find the location is to run this inside DevStudio. Its been a while but I am sure DevStudio has an option to break when SEH exception is thrown. Just turn this on and your debugger will stop at the throw point and allow you to debug.

See: https://msdn.microsoft.com/en-us/library/d14azbfh.aspx

As noted by @MatthiasVegh you should pass the name of the test as well so you don't have to run through all the tests.

Don, (Entry 1 of 4) transitive verb. 1 : to put on (an article of clothing) donned his hat and gloves. 2 : to wrap oneself in : take on sense 3a the donning of new and more tyrannous moralities— Edward Sapir. 1. Don (also dōn) Used as a courtesy title before the name of a man in a Spanish-speaking area. 2.

At work the approach I use is to run only the failing testcase using gdb like so:

gdb /path/to/test
catch throw
r --gtest_filter='Test.Testcase' --gmock_verbose=info
bt

With visual studio, I suspect you should be able to start your binary with arguments as above, and set a breakpoint to any throw, then take a look at the backtrace.

Don, DCP DeSilva (Boman Irani) sees a way to bring to justice the feared head of a criminal empire by recruiting a man named Vijay, who looks exactly like the crime boss (Shah Rukh Khan). The ruse works too well, and soon Vijay finds his life in danger Don definition, Mr.; Sir: a Spanish title prefixed to a man's given name. See more.

That is not possible since C++ doesn't keep stack trace in the exception object and even if gtest had some smart catching mechanism it would have no means to know where the exception came from. The best you can do is to store some information in the exception yourself and check it in the test case.

Don, verb (used with object), donned, don�ning. to put on or dress in: to don one's clothes. Origin of� Don, and dom, is derived from the Latin Dominus: a master of a household, a title with background from the Roman Republic in classical antiquity.

Don, A man who is very sexy and powerfull. This man can control the hearts of all women, while being caring and still sexy. A don is a guy that everyone wants to be like� Dôn, in Celtic mythology, leader of one of two warring families of gods; according to one interpretation, the Children of Dôn were the powers of light, constantly in conflict with the Children of Llyr, the powers of darkness. In another view, the conflict was a struggle between indigenous gods and those of an invading people.

don, noun. 1British A university teacher, especially a senior member of a college at Oxford or Cambridge. 'He worked easily with the many newcomers into his� Vijay is recruited by a police officer to masquerade as his lookalike Don, the leader of an international gang of smugglers. Things go wrong when the officer is killed and Vijay is left to fend for himself.

don, To don means to put on, as in clothing or hats. A hunter will don his camouflage clothes when he goes hunting. Don-O-Mite Disinfectant Cleanerfor use on hard surfaces, ideal for spot cleaning & reduces cross.

Comments
  • Nice! This is exactly what I am looking for! Thanks you!
  • Nice to know about the catch throw for gdb. I will definitely try this. But do you know any equivalent settings for nmake?
  • Thank for the answer. If the exception is not throw by myself, for example: divide-by-zero exception, or using released memory and etc, then I cannot store any information thought. And I know that under Xcode, we can add exception break point, and under Visual Studio, it will breaks automatically at the exception point as well (please refer to my newly added screenshots in my post). The debugger probably already store the exception information somehow I guess?
  • You can add an exception type to stop on in the corresponding dialog(Ctrl+Alt+E). But you have to do it for all the exceptions you need(or some base class) and it will stop even on "First chance exceptions" AFAIK. It doesn't mean that it stores the exception info somewhere, though. It might break it because debugger has info on every instruction and might check the exception right on the place it is thrown. But it is debugger privilege, you can't get your hands on that info.