Board index » delphi » How Do You Debug an Access Violation?

How Do You Debug an Access Violation?

My global exception handler on some setups (probably <0.1% of users) is
trapping an Access Violation at Address 0048434E at Read Address FFFFFFFF or
00000000.  It is always at 0048434E with read address of FFFFFFFF or
00000000.

How do I find which part of the program (or specifically which line of code)
is causing this error?

I do not have access to the end users machines.

HELP!

Any suggestions greatly received!

 

Re:How Do You Debug an Access Violation?


What you're looking at is probably a garbage pointer, or a pointer that's
referring to an object which has been freed (but the pointer continues to
hold the now-stale value).  

The read-address is commonly useless; FFFFFFFF and 00000000 are common "I
dunno" addresses that you see.  What you can do is to use the detailed
compiler map to try to translate address 48434E into a statement in your
program.

Unfortunately ... it's likely that this will be some low-level runtime
library routine (e.g. mFree).  This kind of message has to be tracked down
by inspection.  :-X

In article <yhp56.151039$eT4.10883...@nnrp3.clara.net>, "NoSpam"

Quote
<nos...@nospam.com> wrote:
> My global exception handler on some setups (probably <0.1% of users) is
> trapping an Access Violation at Address 0048434E at Read Address FFFFFFFF or
> 00000000.  It is always at 0048434E with read address of FFFFFFFF or
> 00000000.

> How do I find which part of the program (or specifically which line of code)
> is causing this error?

> I do not have access to the end users machines.

> HELP!

> Any suggestions greatly received!

Re:How Do You Debug an Access Violation?


Use a memory checker like MemProof:
http://www.totalqa.com/downloads/memproof.asp

"NoSpam" <nos...@nospam.com> schreef in bericht
news:yhp56.151039$eT4.10883184@nnrp3.clara.net...

Quote
> My global exception handler on some setups (probably <0.1% of users) is
> trapping an Access Violation at Address 0048434E at Read Address FFFFFFFF
or
> 00000000.  It is always at 0048434E with read address of FFFFFFFF or
> 00000000.

> How do I find which part of the program (or specifically which line of
code)
> is causing this error?

> I do not have access to the end users machines.

> HELP!

> Any suggestions greatly received!

Other Threads