I built a trivial PVF dll, linked with a VC2005 C++ assembly, and used that assembly from a VS2005 C# GUI app. It all works, but when I try to step into the PVF dll, it does not have debug info. The PDB is in the correct location. When the PVF dll is loaded, the trace windows says Binary was not built with debug information.
In order to debug PVF code, you need to use the PVF debugger. It sounds like you may not be using the PVF debugger for your debugging. Also the PVF compilers produce a different debug format (Dwarf) in a file with a “dwf” extension. The linker produces a PDB file with minimal debug info, however, you’ll need to use the dwarf info to debug the dll. If you do not have a dwf file, then it sounds like you’re not building under “Debug” in PVF.
If you’re using a PVF solution for your application, then things should just work after you build under “Debug”. Otherwise, you’ll need to launch the application under PVF to get the PVF debugger. This requires that you create a new PVF solution and add your C++, PVF, etc. projects to that solution. You may also be able to attach to your running application with the PVF Debug Engine (when you get the Attach to Process dialog in Visual Studio, you can select the PGI Debug Engine in the “Attach to:” drop down box).
We had another customer contact us with a similar problem. Myself and another engineer discovered a work around that may work for you.
If you need to debug a DLL created by PVF (but used in native code other than PVF), then perform the following:
- Load the solution into Visual Studio.
- In the solution explorer, select the PVF DLL.
- Right-click (on the PVF DLL) and select “Set as StartUp Project”.
- Right-click (on the PVF DLL) again, and click on “Properties”.
- (A Property Page dialog box appears). Open the “Configuration Properties” tree in the dialog box.
- Click on “Debugging”.
- (In the right pane of the property page dialog, you will see a prompt for “Command”). Click on “Command” and enter the full path of the executable that you are want to debug.
- Press the “OK” button.
- Set a breakpoint inside the DLL (see below).
- Launch the debugger.
To actually debug the DLL, you’ll need to set a breakpoint inside the DLL and run to that breakpoint. Unfortunately, a bug in the PVF debugger prevents us from stepping into a function contained in a DLL (we hope to solve this problem in the future).
I hope this helps,