Visual Studio: how to debug a library with an external executable?
I am developing a class library. The library is to be used by another program, an .exe with no source code. The library file location is passed as a parameter to this exe, for example by running: prog.exe lib.dll
I would like to debug the library using this .exe (using debug tools such a开发者_StackOverflow中文版s breakpoints, etc.) How do I use Visual C# to do this?
I found a possible way, which is creating a one-line program which execute prog.exe lib.dll
. Surely there is a better way?
In the project's debug options select "Start External Program" and enter the path of the exe. On starting debugging VS will start the exe, attach to it as a debugger.
When your library is loaded any breakpoints on your code will activate.
One caveat: with an external program ensure it is loading the dll you are building, things can be (at best) odd if it is loading a different version that doesn't match the source code.
If you already have an external program that use your library (which then also is a .net application, I will assume), you can start that program and attach the debugger to the process (Debug -> Attach to process in the menu). Then you will be able to set breakpoints in your class library code and debug it. Make sure that the exe uses a dll and pdb file that is in sync with your code (the latest build).
- You can probably try windbg. with the sos extension, it is mearly possible to everything you do with Visual Studio.
- If all you want is to debug the library, then why can't you load that library into an exe you created and step inside the library,
精彩评论