VC++, Windbg and appl verifier

G

Guest

I have a heap problem in my com exe server.
When i use windbg as the compiler in application verifier is windbg started
and i can press 'g' and the server is running unitil i get the exception.

When i'm using VC.net i get an excpetion in the client which starts the
server! I have not added the client to appl verifier, so how come that VC is
launched with the client.exe?

And is it possible to load symbols after VC has started, i.e. like windbg
..reload?

/Tjalve
 
O

Oleg Starodumov

I have a heap problem in my com exe server.
When i use windbg as the compiler in application verifier is windbg started
and i can press 'g' and the server is running unitil i get the exception.

When i'm using VC.net i get an excpetion in the client which starts the
server! I have not added the client to appl verifier, so how come that VC is
launched with the client.exe?

Do you mean that the client crashes with an exception before the server
has started under debugger?

If yes, debug the client and see where the exception is thrown.
It can be a bug in the client.

If the server cannot start under debugger, make sure that you enter the full path
to Devenv.exe followed by /debugexe in "Debugger" field in AppVerifier options
for the server executable (better if there are no spaces in the path).

If the server successfully starts under VS.NET debugger, and the client's call to the server
returns 0x80010105 error code, then you should configure VS.NET debugger
(the one that is launched to debug the server) to stop on first chance access violation
exceptions (Debug | Exceptions | Win32 Exceptions | Access violation, select
"When the exception is thrown" - "Break into debugger").

This is because by default the debugger does not stop on first chance access violations,
and the exception thrown by AppVerifier/PageHeap is handled by COM stub
and passed to the client as an error code.

Another way to achieve the same result is described here:
http://support.microsoft.com/default.aspx?scid=kb;en-us;198623
And is it possible to load symbols after VC has started, i.e. like windbg
.reload?

Yes, if symbols are not yet loaded. In Modules window, select the module
and R-Click + Reload Symbols.

Regards,
Oleg
 
G

Guest

Great thank you!

Oleg Starodumov said:
Do you mean that the client crashes with an exception before the server
has started under debugger?

If yes, debug the client and see where the exception is thrown.
It can be a bug in the client.

If the server cannot start under debugger, make sure that you enter the full path
to Devenv.exe followed by /debugexe in "Debugger" field in AppVerifier options
for the server executable (better if there are no spaces in the path).

If the server successfully starts under VS.NET debugger, and the client's call to the server
returns 0x80010105 error code, then you should configure VS.NET debugger
(the one that is launched to debug the server) to stop on first chance access violation
exceptions (Debug | Exceptions | Win32 Exceptions | Access violation, select
"When the exception is thrown" - "Break into debugger").

This is because by default the debugger does not stop on first chance access violations,
and the exception thrown by AppVerifier/PageHeap is handled by COM stub
and passed to the client as an error code.

Another way to achieve the same result is described here:
http://support.microsoft.com/default.aspx?scid=kb;en-us;198623


Yes, if symbols are not yet loaded. In Modules window, select the module
and R-Click + Reload Symbols.

Regards,
Oleg
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top