| 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 10:36 | 2 | |
Refer to Raid bug 24933
| |||||