Wednesday, July 9, 2008

Debugger screenshotting

The debugger integration in MonoDevelop is progressing, lots of work in the past weeks. I'm going to show what is supported right now, altough much work is still left to make everything stable.

Everything I'm showing here works both for the MDB and GDB backends, unless explicitly stated.

First of all, this is the Attach to Process window. Notice the "Debugger" combo at the bottom. It allows you selecting which debugger you want to use to start the debug session (MDB or GDB):



Breakpoints have a nicer look, and there is support for enabling/disabling. Also, when starting a debug session, invalid breakpoints (e.g. breakpoints placed in lines without statements) will be rendered as disabled.



The dissassembly window shows the assembler mixed with the source code when available. This mixed view is not supported in MDB, due to limitations in the API (for MDB, dissassembly without source code will be shown). The disassembly view supports single-stepping of assembler instructions.



Big improvements in the Watch View. The list now has icons for each type of member. Drill down has been improved, for example big arrays are now split in 'ranges' which makes easier to locate elements.

The Watch View now supports expressions. The expression evaluator is based on NRefactory, and although not all C# expressions are supported, many of them are (for example, arithmetic operations, method calls, array access, conditional expressions, etc). Expressions can be used both to select what to show in the view, and to assign values to variables or members. For GDB, the GDB expression evaluator is used. The screenshot below shows some examples. In one of the examples, the value of an expression will be assigned to the variable 'n':



The Watch View can also be used to inspect types. The view will show all static members of a type. Namespaces are also supported. For example, you can enter the namespace 'System' and drill down through all types and inspect their static members (not supported in GDB):



The Watch View also supports code completion (both for entering expressions and values). Code completion is based on data from the debugger backend, not on the MonoDevelop parser database, so it works for MDB and GDB, and even when debugging an application for which there isn't a MonoDevelop project:



Another nice feature is the support for debug tooltips in the editor. When moving the mouse over a variable or member, a tooltip will show its value. The tooltip is interactive and allows drilling down and modifying values just like the watch window:



It is also possible to use tooltips to inspect the value of expressions:



And works for GDB too! This final screenshot shows a Mono process attached with GDB, a debug tooltip for a MonoMethod, and a member of that struct being modified using code completion:



That's all for now. If you want to try it you'll have to get everything from SVN (see my last post).

39 comments:

Anonymous said...

wow! simply wow! this is far more than what i've expected

Christian Hergert said...

once again lluis, you amaze me!

Alexis said...

Felicidades Luis,
estamos a la espera de esta nueva caracteristica.

Saludos, desde Chile

Jason said...

Thank you so much! It looks like I'll be able to dump my VM soon :)

Stuart said...

Fantastic stuff!

Curious - will this be supported on OS X too?

xanadont said...

Yes, I agree with everyone else - very impressive! Perhaps this even has the potential of persuading Miguel to the dark side of IDE development. Also, one more vote for full OS X support.

Jamie Penney said...

Wow! I am really impressed. Having written a Gui wrapper for a simple template debugger, I know how difficult these things can be. I am looking forward to seeing how this turns out when you release. Also, I've submitted this link to DZone for you.

Ryan Lovelett said...

I'm really impressed as well. I've been following this thing in the repositories and it has been getting better by leaps and bounds. Keep up the great work.

Also, I submitted this to digg!
http://digg.com/programming/New_MonoDevelop_Debugger

Anonymous said...

It's so so so great!

Anonymous said...

It's so so so great!

Dave said...

Really nice shots but, what about posting a monodevelop compilation guide?

It's becoming a dependency nightmare trying to compile monodevelop from svn...

Anonymous said...

Looks great

Anonymous said...

Seriously, this is friggin amazing.

Ventsislav Mladenov said...

It's very amazing. Good work folks.

Bob Mottram said...

Looks good. I've been using MonoDevelop for over a year now and interactive debugging will certainly be useful.

Schmendrick said...

very good news.i cant wait!
i've been following mono(develop)'s progress for a long time now. i am really looking forward for getting monodevelop with this debugger!

without a sleak debugger, i am unwilling to start developing C# on linux (and for linux) and i am sure many others think like me.

when this is finished i am certain many more C# entusiasts will finally start creating some cross-platform programs in C#!

Schmendrick said...

and please forgive my ignorance (if it is one) but:
for what would i need the gnu debugger when i have the mono debugger???

Lluis said...

@Schmendrick: the Mono debugger can only be used to debug Mono applications. GDB allows debugging native C and C++ applications.

Schmendrick said...

@Lluis reply:

ah yes!
i forgot!
as monodevelop now also supports C++ development this is of course a very cool feature :)

i'd forgotten that you already also support C++, and i wondered what the GDB could help with a C# program....

now i really cannot wait. i failed building mono&monodevelop from the sources, so i will wait for the first package you provide.

kudos to all people involved!

Schmendrick said...

Hello again!

As far as i understand, the mono features needed for the monodevelop debugger to work are scheduled to be released at the end of the year (and are at the moment available only under SVN).

I was wondering, is there any pre-release tarball planned with the debugger feature enabled?

even if we forget mono, is it planned that the debugger feature will be disabled as long as mono has not released its required parts? after all, monodevelop debugger works with the GDB, like you already said.

Juanan said...

hi there
i'm trying to build monodevelop with debugger support (all from SVN), without success
I always get this error :
./DebuggerServer.cs(150,52): error CS1061: Type `Mono.Debugger.GUIManager' does not contain a definition for `Break' and no extension method `Break' of type `Mono.Debugger.GUIManager' could be found (are you missing a using directive or an assembly reference?)

Any help? TIA

Anonymous said...

I also have strange problems when building. After opening monodevelop i still dont have any debugger options.

Is there any possibility to get a Pre-Release tarball?

ry said...

EVEN by wow gold the standards gold in wow of the worst financial buy wow gold crisis for at least wow gold cheap a generation, the events of Sunday September 14th and the day before were extraordinary. The weekend began with hopes that a deal could be struck,maplestory mesos with or without government backing, to save Lehman Brothers, America''s fourth-largest investment bank.sell wow gold Early Monday buy maplestory mesos morning Lehman maplestory money filed for Chapter 11 bankruptcy protection. It has more than maplestory power leveling $613 billion of debt.Other vulnerable financial giants scrambled maple money to sell themselves or raise enough capital to stave off a similar fate. billig wow gold Merrill Lynch, the third-biggest investment bank, sold itself to Bank of America (BofA), an erstwhile Lehman suitor,wow power leveling in a $50 billion all-stock deal.wow power leveling American International Group (AIG) brought forward a potentially life-saving overhaul and went maple story powerleveling cap-in-hand to the Federal Reserve. But its shares also slumped on Monday.

xiaoqiu said...

rf gold which in RF Online Game is very popular for many players. Play this online game the premise that we have more enough rf online gold first. They are able to combine creative tools and weapons with some rf money and the Light form of universal magic. Under such sustained attacks they fell from power, yet they have bided their rf cp and time. Due to make cheap rf gold the intense gravity on their home planet, the Bellato are the smallest people.
runescape gold of RS Online Game, we have made several changes to Fun Orb. If you wish to buy runescape to explore other spell books, you should subscribe as a Fun Orb member. Shattered Plans - a galaxy-spanning strategy epic that use rs gold to allow up to six players to battle for supremacy. We only plan to pay cheap rs gold when we feel you will appreciate the updates. And we certainly feel that these changes and some runescape money are worth telling you about.

said...

You know ,I have some 9Dragons gold, and my friend also has some
9 Dragons gold,do you kouw they have the same meaning,Both of them can be called
9Dragons money,I just want to
buy 9 Dragons gold, because there are many
cheap 9Dragons gold.
You know ,I have some Anarchy credits, and my friend also has some
Anarchy Online credits, do you kouw they have the same meaning,Both of them can be called
Anarchy gold,I just want to
buy AO credits, because there are many cheap
Anarchy online gold.

lanzi said...

I can get Perfect World Gold cheaply,
Yesterday i givePerfect World moneyfor my brother.
i hope him like it. iBuy Perfect World Gold to him as birthday present.
i like the Perfect World Silver very much.
I usually buycheap Perfect World Gold and keep it in my store.
I enjoy the pw gold.
I can get Pirates of the Burning Sea Gold cheaply,
Yesterday i want to buy potbs goldfor my brother.
i hope him like it. i will buy potbs Doubloon for him
as birthday present. i like the potbs money very much.
I usuallybuy potbs Doubloon and keep it in my store.

yanhui said...

Once I played GuildWars, I did not know how to get strong, someone told me that you must have gw gold. He gave me some GuildWars Gold, he said that I could buy Guild Wars Gold, but I did not have money, then I played it all my spare time. From then on, I got some GuildWars money, if I did not continue to play it, I can sell cheap gw gold to anyone who want.
Once I played hero, I did not know how to get strong, someone told me that you must have hero gold. He gave me some hero online gold, he said that I could buy hero gold, but I did not have money, then I played it all my spare time. From then on, I got some hero online money, if I did not continue to play it, I can sell hero money to anyone who want.

rhtehe said...

Do you know the eve isk, in the game you need the eve online isk. it can help you increase your level. My friends always asked me how to buy eve online isk, and I do not know he spend how much money to buy isk, when I see him in order to play the game and search which the place can buy the cheap eve isk. I am happy with him.
Do you know the fiesta Gold, in the game you need the
fiesta money. it can help you increase your level. My friends always asked me how to buy fiesta Gold, and I do not know he spend how much money to buy the fiesta online gold, when I see him in order to play the game and search which the place can buy the
fiesta online money. I am happy with him.

fangyan said...

As a new player , you may need some game guides or information to enhance yourself.
knight gold is one of the hardest theme for every class at the beginning . You must have a good way to manage your knight noah.If yor are a lucky guy ,you can earn so many knight online gold by yourself . But if you are a not , I just find a nice way to get knight online noah. If you need , you can buy cheap knight gold at our website . Go to the related page and check the detailed information . Once you have any question , you can connect our customer service at any time .

Making Rose zuly is the old question : Honestly there is no fast way to make lots of rose zulie . Sadly enough a lot of the people that all of a sudden come to with millions of rose online zuly almost overnight probably duped . Although there are a lot of ways to make lots of rose online zulie here I will tell you all of the ways that I know and what I do to Arua ROSE zuly.

Anonymous said...

rohan crone has many ways for us to use. When you start the Rohan Online game, your character will be level 1. I remembered that when I started playing this Rohan game with some little cheap rohan money. My friends all told me that the best way to spend rohan online gold is a good way. But I could not like spending my own rohan online crone. If you do not like upgrading level step by step, you can cost rohan gold to help your character to reach level high.

Anonymous said...

I always heard something from my neighbor that he sometimes goes to the internet bar to play the game which will use him some Perfect World Gold, he usually can win a lot of Buy Perfect World Gold, then he let his friends all have some Perfect World Silver, his friends thank him very much for introducing them the Perfect World money, they usually cheap Perfect World Gold together. It is the pw gold always make them happy.

Anonymous said...

It is the ro zeny which make me very happy these days, my brother says ragnarok zeny is his favorite games gold he likes, he usually buy some iro zeny to start his game and most of the time he will win the cheap zeny back and give me some ragnarok online zeny to play the game.

Anonymous said...

I always heard something from my neighbor that he sometimes goes to the internet bar to play the game which will use him some mabinogi gold,he usually can win a lot of cheap mabinogi,then he let his friends all have some mabinogi money,his friends thank him very much for introducing them the buy mabinogi gold,they usually mabinogi online gold together.

Anonymous said...

出会い熊本出会い京都出会い三重出会い宮城出会い宮崎出会い長野出会い長崎出会い奈良出会い新潟出会い大分出会い岡山出会い沖縄出会い大阪出会い佐賀出会い埼玉出会い滋賀出会い島根出会い静岡出会い栃木出会い徳島

Anonymous said...

福井出会いカフェ愛知出会いカフェ岐阜出会いカフェ静岡出会いカフェ三重出会いカフェ兵庫出会いカフェ大阪出会いカフェ和歌山出会いカフェ滋賀出会いカフェ京都出会いカフェ奈良出会いカフェ山口出会いカフェ鳥取出会いカフェ島根出会いカフェ岡山出会いカフェ広島出会いカフェ徳島出会いカフェ香川出会いカフェ愛媛出会いカフェ高知出会いカフェ

Anonymous said...

出会い東京出会い大阪出会い福岡出会い兵庫出会い神奈川出会い宮城出会い千葉出会い愛知出会い埼玉出会い青森出会い岩手出会い秋田出会い山形出会い山口出会い東京出会い鳥取出会い富山出会い和歌山出会い山形

Anonymous said...

出会い奈良出会い滋賀出会い三重出会い和歌山出会い愛知出会い静岡出会い岐阜出会い広島出会い岡山出会い山口出会い島根出会い鳥取出会い富山出会い石川出会い福井出会い徳島出会い香川出会い愛媛出会い高知出会い福岡

Anonymous said...

セフレ奈良セフレ滋賀セフレ三重セフレ和歌山セフレ愛知セフレ静岡セフレ岐阜セフレ広島セフレ岡山セフレ山口セフレ島根セフレ鳥取セフレ富山セフレ石川セフレ福井セフレ徳島セフレ香川セフレ愛媛セフレ高知セフレ福岡

Anonymous said...

福井テレクラ愛知テレクラ岐阜テレクラ静岡テレクラ三重テレクラ兵庫テレクラ大阪テレクラ和歌山テレクラ滋賀テレクラ京都テレクラ奈良テレクラ山口テレクラ鳥取テレクラ島根テレクラ岡山テレクラ広島テレクラ徳島テレクラ香川テレクラ愛媛テレクラ高知テレクラ