views:

56

answers:

1

I have a MonoDevelop 2.4 Add-In that adds a suport of custom .NET-based language to IDE. It works fine - compiles, runs etc but i'm wondering how to implement a debugger support for it. Unfortunately MonoDevelop Add-In framework is not documented anyhow. Googling & disassembling MonoDevelop dlls with Reflector had no effect.

If smb knows any source of useful documentation or how to add a debugger support in my case, please tell me.

+2  A: 

MonoDevelop is open-source, there is no need to decompile it :)

There should also be no need to write a debugger addin, if you have implemented your language addin as an IDotNetLanguageBinding. The existing Mono & .NET debuggers should work automatically, assuming that you have them installed, and that your compiler is generating debug symbols.

I would strongly suggest that you ask further questions about MD addin development on the monodevelop-list or monodevelop-devel-list mailing lists.

mhutch
"MonoDevelop is open-source, there is no need to decompile it" - what is the difference? =) i already have reflector installed. it's a waste of time to download source files
ILya
There are default debugger add-ins included in MonoDevelop 2.4, My language add-in implements IDotNetLanguageBinding. But clicking debug simply runs an application. And yes, my compiler generates debugging symbols correctly because it's core is a standard mono compiller.
ILya
Source files have comments and nice variable names, and have probably been formatted better.
mhutch
Well, it sounds like you need to provide more information. What OS and are you using? What runtime are you targeting? Do you have an actual "debug" command available, and does running it put the IDE into debugging mode?
mhutch
ILya
My OS is Windows 7, I'm targeting Mono 2.6.4 runtime, i do have "debug" variable and yes, it puts IDE in debug mode but all breakpoints are ignored
ILya
Also useful information. I've overriden Project.ServiceExtension.Execute because an external program is responsible for running my custom language projects (not mono.exe). Maybe i have to add some additional code to enable debugging? I've used IdeApp.ProjectOperations debug bethods but no effect
ILya
If you're debugging on Windows with Mono, do you have mdb or pdb debug symbols? Does MonoDevelop's debugger for the .NET runtime work?
mhutch
No, i have no mdb or pdb symbols and with standard C# projects debugging works perfectly in .NET but still no effect with my lang...
ILya
Then your compiler needs to generate debug symbols - pdb for the .NET debugger, mdb for the mono debugger. It's not possible to debug without symbols.
mhutch
this step is finished. i had to properly implement debugger factory classes. thx for trying to help! There is another issue http://stackoverflow.com/questions/3701211/cant-use-mono-soft-debugger-remote-debugging-because-debugger-agent-dwp-handsh so any help will be greatly appreciated.
ILya