Debugging Unmanaged code from managed one

Posted: March 7, 2005 in Uncategorized

Though the same is not required often as there very few integration system today (though Ms people thinks it in other way).However often you might need to debug ur unmanaged code from manged one .

here are the steps:-Taken FRom here

If you are using interop to call into a VB6 ActiveX dll or exe and you need to debug your VB6 project you may find yourself having both VS.NET and the VB6 IDE open.  This can certainly be far from efficient.

Typically you set your VB6 project to Wait for the Component to be created and you launch your .NET app and then hit breakpoints within the VB6 component.  Well, there™s an easier way to do this.  You can actually debug your VB6 component within VS.NET.  Here™s what you need to do:

Build your VB6 project with symbols.
In VB6 open up your vbp file and goto Project->Properties.  Select the compile tab and check Compile to Native Code.  Then select the No Optimization radio button and check Create Symbolic Debug Info.

This will generate a .PDB (Program Database) file along with your .EXE.  This file contains the debugging information so the VS.NET debugger can line up source and hit breakpoints, etc.  (Make sure you have binary compatibility on your VB6 dll set or you™ll have to drop and re-add your reference to the VB6 component in VS.NET.)

 Open your .NET project in VS.NET.
Go to the project properties and select the Configuration Properties->Debugging property page and enable unmanaged debugging.
    For VB.NET projects this option is Unmanaged code debugging and for C# is enable unmanaged debugging. 

Select the property page for the solution. 
Add to the Debug Source Files an entry that points to the path where the source code is for the VB6 component.
Add to the Debug Symbols Files an entry that points to the folder where the .PDB file is that was generated in step 1.
You should now be able to open your .bas, .cls, .frm, etc. files in VS.NET and you can put breakpoints in the file.  Once you debug the debugger will stop on those lines of code.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s