In MonoDevelop, the default is to turn off debugging of external assemblies (. dll), which can be resolved by the following steps.
Through the menu "Edit"-"Preferences"-"Debugger" into the debugger's settings page, the "Debug Project code only;" does not step into the framework code. option is canceled.
If your app is a console program, you'll also need to go to the project (right-click on the item, select "Options" in the pop-up menu), and cancel the "run on external console" setting.
However, even this is not possible to step into the external assembly because it is also missing the Mono debugger file, the (*.dll.mdb) file. You will also need to copy the . mdb file for all external assembly files that you want to debug into the "Bin/debug" directory of the current host project. Note: If the external assembly has updated the code, remember to copy the corresponding . mdb file again.
It is painful to copy manually every time, especially when there are many external assemblies, so it is necessary to create a copy script. Create a script file named: deploy.sh
in the directory of the host project, using the command: vi deploy.sh
then write in the first line of the VI Editor: #!/bin/bash
The second line begins the copy command. When you are done editing, remember to use the command: chmod 777 deploy.sh
to turn on its executable properties.
In MonoDevelop, enter the property Settings dialog box for the host project and add an after build command entry in the build-custom command Settings page:deploy.sh
At this point, you can happily in the MonoDevelop in the external library for single-step debugging!
About MonoDevelop on Linux single-Step Debugging Problem solving