Title: | Microsoft Visual C++ bug reports and kits |
Notice: | Register in Topic 2. 5.Last for latest Kit |
Moderator: | DECWET::THOMAS N |
Created: | Tue May 17 1994 |
Last Modified: | Fri Jun 06 1997 |
Last Successful Update: | Fri Jun 06 1997 |
Number of topics: | 521 |
Total number of notes: | 2938 |
Hi, There seems to be a problem in the debugger for Alpha kit in terms of stopping when an exception is thrown. I run the simple program below using the debugger and set Debug - Exceptions to stop always. Instead of stopping at the throw line I get a breakpoint at NTDLL 77f4effc() and no other stack trace information. Cheers Steve ///////////////////////////////////////////////////////////// #include <string> #include <iostream> using namespace std; void main () { try { string name = string("D:\dev\output\AlphaDbg\boris"); throw name; } catch(string& str) { cout << "HELLO WORLD " << str << endl; } } [Posted by WWW Notes gateway]
T.R | Title | User | Personal Name | Date | Lines |
---|---|---|---|---|---|
484.1 | work around | DECWET::PETERSON | Wed Mar 19 1997 12:01 | 20 | |
Thanks for the bug report. For some reason that we weren't able to debug, all NT dlls are not traceable. After the exception occurs, a "step over" in the ntdll.dll assembly code steps to the user exception handler. This allows you to see how the exception is handled, but it does not allow you to see what caused the exception. A workaround to get a call-stack of where the exception was raised is manually unwind the stack as follows: set sp = to =x10 plus the current value of sp [you can do this in a watch window] set ra = *(long*)(sp) set fir = 0x77e920c4 delete the above expressions before proceeding a step over or go then proceeds normally to stop at your catch handler | |||||
484.2 | bug | DECWET::METZGER | Thu Apr 03 1997 11:36 | 2 | |
Refer to Raid bug 24933 |