开发者

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).


  1. You can probably try windbg. with the sos extension, it is mearly possible to everything you do with Visual Studio.
  2. 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,
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜