Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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 as 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?

like image 415
Louis Rhys Avatar asked Oct 06 '10 08:10

Louis Rhys


2 Answers

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.

like image 164
Richard Avatar answered Sep 23 '22 15:09

Richard


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

like image 35
Fredrik Mörk Avatar answered Sep 22 '22 15:09

Fredrik Mörk