From: TomChapman on
I thought 0047AC19 might be the location address. How do I find what
subroutine that equates to?


Joseph M. Newcomer wrote:
> If 0047AC19 is the address of the instruction that failed, you need to find out what
> subroutine that is in. Usually an access fault gives both the address of the failing
> instruction and the address that was accessed. Most commonly, the address access is
> either < 0xFFFF or some weird address that starts with 0xFEEE???? 0xDFDF???? or 0xCCCC????
> and these are hints as to what went wrong (null pointer, stale pointer, uninitialized
> heap, or uninitialized stack, respectively)
> joe
>
> On Mon, 17 May 2010 11:32:39 -0500, TomChapman <TomChapman12(a)gmail.com> wrote:
>
>> My program occasionally terminates with a memory access violation. The
>> description is shown below:
>>
>> The thread tried to read from or write to a virtual address for which it
>> does not have the appropriate access. Error code: 0xC0000005 Exception
>> address: 0x0047AC19.
>>
>> Finding this problem would be easy if I was running the debugger.
>> Unfortunately, on the server where this occurs, I can not load the
>> compiler and run the debugger. The error doesn't occur when the program
>> is run elsewhere. Does the exception address included in the error mean
>> something useful? Is there a way for me isolate where in my code the
>> error is occurring?
>>
>> This is a release version of software. I could install the debug version
>> if that would help. This is Visual C++ version 6. What can I do here?
> Joseph M. Newcomer [MVP]
> email: newcomer(a)flounder.com
> Web: http://www.flounder.com
> MVP Tips: http://www.flounder.com/mvp_tips.htm
From: Joseph M. Newcomer on
Use the debugger on a copy of the same .exe image you ship.
joe

On Mon, 17 May 2010 13:56:19 -0500, TomChapman <TomChapman12(a)gmail.com> wrote:

>I thought 0047AC19 might be the location address. How do I find what
>subroutine that equates to?
>
>
>Joseph M. Newcomer wrote:
>> If 0047AC19 is the address of the instruction that failed, you need to find out what
>> subroutine that is in. Usually an access fault gives both the address of the failing
>> instruction and the address that was accessed. Most commonly, the address access is
>> either < 0xFFFF or some weird address that starts with 0xFEEE???? 0xDFDF???? or 0xCCCC????
>> and these are hints as to what went wrong (null pointer, stale pointer, uninitialized
>> heap, or uninitialized stack, respectively)
>> joe
>>
>> On Mon, 17 May 2010 11:32:39 -0500, TomChapman <TomChapman12(a)gmail.com> wrote:
>>
>>> My program occasionally terminates with a memory access violation. The
>>> description is shown below:
>>>
>>> The thread tried to read from or write to a virtual address for which it
>>> does not have the appropriate access. Error code: 0xC0000005 Exception
>>> address: 0x0047AC19.
>>>
>>> Finding this problem would be easy if I was running the debugger.
>>> Unfortunately, on the server where this occurs, I can not load the
>>> compiler and run the debugger. The error doesn't occur when the program
>>> is run elsewhere. Does the exception address included in the error mean
>>> something useful? Is there a way for me isolate where in my code the
>>> error is occurring?
>>>
>>> This is a release version of software. I could install the debug version
>>> if that would help. This is Visual C++ version 6. What can I do here?
>> Joseph M. Newcomer [MVP]
>> email: newcomer(a)flounder.com
>> Web: http://www.flounder.com
>> MVP Tips: http://www.flounder.com/mvp_tips.htm
Joseph M. Newcomer [MVP]
email: newcomer(a)flounder.com
Web: http://www.flounder.com
MVP Tips: http://www.flounder.com/mvp_tips.htm
From: David Ching on
"TomChapman" <TomChapman12(a)gmail.com> wrote in message
news:#cFeEBe9KHA.3176(a)TK2MSFTNGP05.phx.gbl...
> My program occasionally terminates with a memory access violation. The
> description is shown below:
>
> The thread tried to read from or write to a virtual address for which it
> does not have the appropriate access. Error code: 0xC0000005 Exception
> address: 0x0047AC19.
>
> Finding this problem would be easy if I was running the debugger.
> Unfortunately, on the server where this occurs, I can not load the
> compiler and run the debugger. The error doesn't occur when the program is
> run elsewhere. Does the exception address included in the error mean
> something useful? Is there a way for me isolate where in my code the error
> is occurring?
>
> This is a release version of software. I could install the debug version
> if that would help. This is Visual C++ version 6. What can I do here?

Install a debug version complete with the .pdb files. Run the program until
it crashes. Fire up Process Explorer from Sysinternals.com. In the process
list, find the crashed process, right click, choose Properties. Look at the
Threads tab. You can see the call stack of each thread by clicking the
Stack button. The call stack will have function names because of the .pdb
files that are present. It's not the same as having a full debugger because
you can't see variable values, but at least you can see a symbolic stack
frame, and this is really easy to deploy (no installing Remote Debugger,
establish network connection, set security permissions, etc.).

-- David

From: Cholo Lennon on
TomChapman wrote:
> RFOG wrote:
>> You can do remote debugging. You install the Remote Debugger Monitor
>> into server and can debug from your dev machine without problem.
>>
>> http://support.microsoft.com/kb/241848
>> http://msdn.microsoft.com/en-us/library/y7f5zaaa.aspx
>>
>> "TomChapman" <TomChapman12(a)gmail.com> wrote in message
>> news:#cFeEBe9KHA.3176(a)TK2MSFTNGP05.phx.gbl...
>>> My program occasionally terminates with a memory access violation.
>>> The description is shown below:
>>>
>>> The thread tried to read from or write to a virtual address for which
>>> it does not have the appropriate access. Error code: 0xC0000005
>>> Exception address: 0x0047AC19.
>>>
>>> Finding this problem would be easy if I was running the debugger.
>>> Unfortunately, on the server where this occurs, I can not load the
>>> compiler and run the debugger. The error doesn't occur when the
>>> program is run elsewhere. Does the exception address included in the
>>> error mean something useful? Is there a way for me isolate where in
>>> my code the error is occurring?
>>>
>>> This is a release version of software. I could install the debug
>>> version if that would help. This is Visual C++ version 6. What can I
>>> do here?
>>
>
> Than you, but your idea does not help me. My only link to the remote
> server is a LogMeIn link. I don't think I could get a remote debugging
> link to work.

Can't you install the remote debugger monitor? (as RFOG told you)? or
don't you have access (local or remote) to the server?

Another idea in case you have local access to the server: Is it possible
to install on it the "Debugging Tools for Windows? (just 17 mb,
http://www.microsoft.com/whdc/devtools/debugging/installx86.Mspx)

If so, 1st: generate a .pdb information file for your release version,
2nd: run your program and attach the debugger (WinDbg) to it or just run
your program under the debugger.

Also check the Adplus.vbs script (installed with Debugging tools for
Windows) for an automated process monitoring (see
http://support.microsoft.com/kb/q286350)

Regards

--
Cholo Lennon
Bs.As.
ARG
From: Geoff on
On Mon, 17 May 2010 11:32:39 -0500, TomChapman
<TomChapman12(a)gmail.com> wrote:

>My program occasionally terminates with a memory access violation. The
>description is shown below:
>
>The thread tried to read from or write to a virtual address for which it
>does not have the appropriate access. Error code: 0xC0000005 Exception
>address: 0x0047AC19.
>
>Finding this problem would be easy if I was running the debugger.
>Unfortunately, on the server where this occurs, I can not load the
>compiler and run the debugger. The error doesn't occur when the program
>is run elsewhere. Does the exception address included in the error mean
>something useful? Is there a way for me isolate where in my code the
>error is occurring?
>
>This is a release version of software. I could install the debug version
>if that would help. This is Visual C++ version 6. What can I do here?

This sounds like a classic NULL pointer exception.

Build your release version with pdb files turned on. Keep the PDBs on
your development machine.

Configure the server to create a minidump of the application when it
crashes. Do this from My Computer | Properties | Advanced | Startup
and recovery. Have the user transmit the minidump file to you after
the application crashes. Files are stored in %SystemRoot%\Minidump

Open the dump file with Windbg, then execute following commands:

!analyze -v
..ecxr
kb

This should get you the stack information you need to isolate the
function where the error is occuring.

More information can be found in VC 6.0 help files, look for crash
dump.
First  |  Prev  | 
Pages: 1 2
Prev: start last-open document
Next: serialize args