|
-
July 25th, 2009, 10:15 PM
#1
How do I find out the contents of an address post-crash? And, other related questions
Hi,
Sorry if I posted in the wrong forum. I wasn't sure where to post, the software was written in Visual C++, so
I am debugging a very large program that was written by somebody else (I do not have access to the original programmers). I have added some OpenMP directives in attempts to parallelise the program. The program runs smoothly in Debug Mode, and crashes in Release Mode, naturally. To be more specific, the program crashes, and when Windows asks me do I want to debug the crash, it places an access violation to a delete command inside a destructor of a certain object. However, I have been rattling my brain last number of days trying to trace as to how this became an access violation, because the access violation is totally sequential and has nothing to do to the code I changed.
Moreover, I tried to do an Attach process to the Release mode run with my compiler to try and get more information. I have noticed that there is another Access Violation that occurs but does not crash the program right before the original crashing violation.
First-chance exception at 0x7c9504a1 in hl2.exe: 0xC0000005: Access violation reading location 0x00047a5d. // The non-crasher.
First-chance exception at 0x7c9504a1 in hl2.exe: 0xC0000005: Access violation reading location 0x00003135. // The original crasher.
My first question what are those addresses refer to? I mean, is 0x7c9504a1 the address of the executed operation in the program, or the location of the variable being accessed?
Second, and more importantly, is there a way to know what the data that is inside those locations (what those pointers were pointing at, data type, object type...etc )?
My third question, and I suspect it to be unreleastic, can I know who made the call? Who made the access violation?
Note, my questions are regarding the non-crasher more than the crasher.
I hover with my mouse over the locations but I get an integer value which I am not sure if it is the data that is inside those pointers or just the equivelance of the hex number.
The background:
XP, Visual Studio 2008 Pro Ed, OpenMP
-
July 26th, 2009, 01:33 AM
#2
Re: How do I find out the contents of an address post-crash? And, other related quest
In Visual Studio, open Debug - Exceptions dialog, Win32 exceptions, and check 0xC0000005: Access violation. Then run your program under debugger, it should break on the first-chance exception.
-
July 26th, 2009, 08:05 AM
#3
Re: How do I find out the contents of an address post-crash? And, other related quest
Tags for this Thread
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|