Discussion:
debugging with application verifier
(too old to reply)
Raj
2007-11-15 16:14:01 UTC
Permalink
I am running an application in visual studio 2005 (Debug). I enabled
application verifier before I run-with-debug(F5). My C++ application will end
with exception.


Output window:
VERIFIER STOP 00000650 : pid 0x16F8: Attempt to execute code in
non-executable memory (first chance).

FFBADD11 : Address being accessed.
FFBADD11 : Code performing invalid access.
0012ED8C : Exception record. Use .exr to display it.
0012EDA8 : Context record. Use .cxr to display it.


=======================================
This verifier stop is not continuable. Process will be terminated
when you use the `go' debugger command.


Help in application verifier documentation
===========================
Verifier stop code 0650.

To debug this stop:

u parameter2 - to unassemble the culprit code

.exr parameter3 - to display the exception information;

.cxr parameter4 followed by kb - to display the exception context
information and the stack trace for the time when the exception was raised.


Questions
========

1) Where should I run this commands given in documentation?

2) When should I run the commands. My process was not even started.

3) How to set up symbol path here. I know how to use WinDbg. I know how to
setuo symbol path. I dont see any option in application verifier except when
I see log file window. It is kind of very ODD you setup path in log file
viewer window.
I dont see how it is used or how to save sympath.

Doing my actual project is lot easier than dealing all these half-baked
tools.

Thanks,
Raj
Prasad Kakulamarri [MSFT]
2007-11-15 20:59:02 UTC
Permalink
Hi Raj,
.exr and .cxr are windows debugger commands (windbg, cdb, ntsd) for dumping
the exception record and context record. These commands are not available
from the VS debugger. But, the callstack of the offending thread will help
you determine who is calling into this kernel address FFBADD11.
If you want to use the above command, please launch your app in Windbg.
You need to set the symbol path in your debugger and not Appverifier if you
are looking at a live repro. The symbol path in AppVerifier logs section
corresponds to the Appverifier logs. The callstack for each verifier stop
your app runs into is stored in a log file that can be viewed using the logs
section in the AppVerifier UI.
I am sorry that you feel AppVerifier is a half baked tool. We have been
shipping externally for a long time and it has been proved to be a very
valuable tool. However it can be improved to help first time users.
Please let us know if you have any specific suggestions.
Thanks,
Prasad
Post by Raj
I am running an application in visual studio 2005 (Debug). I enabled
application verifier before I run-with-debug(F5). My C++ application will end
with exception.
VERIFIER STOP 00000650 : pid 0x16F8: Attempt to execute code in
non-executable memory (first chance).
FFBADD11 : Address being accessed.
FFBADD11 : Code performing invalid access.
0012ED8C : Exception record. Use .exr to display it.
0012EDA8 : Context record. Use .cxr to display it.
=======================================
This verifier stop is not continuable. Process will be terminated
when you use the `go' debugger command.
Help in application verifier documentation
===========================
Verifier stop code 0650.
u parameter2 - to unassemble the culprit code
.exr parameter3 - to display the exception information;
.cxr parameter4 followed by kb - to display the exception context
information and the stack trace for the time when the exception was raised.
Questions
========
1) Where should I run this commands given in documentation?
2) When should I run the commands. My process was not even started.
3) How to set up symbol path here. I know how to use WinDbg. I know how to
setuo symbol path. I dont see any option in application verifier except when
I see log file window. It is kind of very ODD you setup path in log file
viewer window.
I dont see how it is used or how to save sympath.
Doing my actual project is lot easier than dealing all these half-baked
tools.
Thanks,
Raj
Loading...