-
November 22nd, 2008, 11:31 PM
#1
access violation exception dump debug
Hello everyone,
I am debugging an access violation exception dump (code xxxxxxxx access violation for memory address, exception code 0x00000005). It is 32-bit x86 code release version. I have used the command dd to examine the memory address (not code address) which reports access violaton. The content of the address is displayed as ???????? in debugger.
I double checked for the memory, it does not belong to any stack (using thread window to iterate all thread stack address space) memory address space, does not belong to any binary code (using load model window to verify).
My question is, for memory address which reports access violation and which content is ????????,
1. is it the memory address not allocated (or reserved) in current process virtual memory space?
2. or the memory address deleted? I have made some test that for the memory deleted on heap, its content will be marked with 0xfe, not ?. But I am not sure whether when the heap memory is recycled by OS memory mamagement system, it will be remarked as ????????
3. Or something else possible?
thanks in advance,
George
-
November 23rd, 2008, 01:35 AM
#2
Re: access violation exception dump debug
Any bogus pointer will show ???? in the "object" it points to (which doesn't actually exist).
-
November 23rd, 2008, 01:59 AM
#3
Re: access violation exception dump debug
Hi Lindley,
Do you have some definitions for what do you mean bogus, it is a general word.
For example, bogus you mean accessing some heap address space which is deleted or something else?
Originally Posted by Lindley
Any bogus pointer will show ???? in the "object" it points to (which doesn't actually exist).
regards,
George
-
November 23rd, 2008, 02:05 AM
#4
Re: access violation exception dump debug
It's specific enough. Bogus. As in "not meaningful". As in "not pointing at an existing object".
So looking at that memory isn't going to help you. You'd do better to look at when that pointer was last modified.
-
November 23rd, 2008, 02:21 AM
#5
Re: access violation exception dump debug
Thanks Lindley,
Here is what I got from Windbg, do know what means "PAGE_NOACCESS"? I did MSDN search but no results.
Code:
0:001> !address 0x00d4cff0
00d0d000 : 00d0d000 - 00040000
Type 00000000
Protect 00000001 PAGE_NOACCESS
State 00010000 MEM_FREE
Usage RegionUsageFree
Originally Posted by Lindley
It's specific enough. Bogus. As in "not meaningful". As in "not pointing at an existing object".
So looking at that memory isn't going to help you. You'd do better to look at when that pointer was last modified.
regards,
George
-
November 23rd, 2008, 09:51 AM
#6
Re: access violation exception dump debug
It means you aren't allowed to touch memory at that address.
You're probably overcomplicating this. The problem most likely isn't anything deep in the memory system.....you just corrupted the pointer somehow, probably by overrunning the bounds of an array or something similar.
-
November 23rd, 2008, 08:30 PM
#7
Re: access violation exception dump debug
Originally Posted by George2
Thanks Lindley,
Here is what I got from Windbg, do know what means "PAGE_NOACCESS"? I did MSDN search but no results.
You are using an invalid pointer, meaning that your program has a bug in handling pointers. You don't need to search MSDN for that. What you need to do is debug your program.
Also, this error has happened to almost every programmer that has written anything non-trivial that handles pointers. It isn't something that can be solved by searching MSDN. It is a bug in your code, plain and simple.
Regards,
Paul McKenzie
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
|