January 26, 2004 4:35 pm (permalink)

Wonderwall

On Friday, I was at the Wonderwall concert here in Trier and it was really great. I was there very early and there weren't that many people, so I was standing directly in front of the stage :-)

Wonderwall, that's a german girl group for those of you who don't know them and I'm really looking forward to seeing them again in Cologne on February 11th - and since Cologne is their home town, the concert is already sold out since weeks.

Posted by martin at January 26, 2004 4:35 pm.

January 19, 2004 4:00 pm (permalink)

A new command line interface for the debugger

Just read Miguel's blog about the debugger's command line interface.

I think it's not that hard to design a new command line interface for it and I already kept this in mind when I designed the current one. The current one basically consists of two parts: the scripting interface and the command line parser.

The scripting interface is the "heart" of it and it's not specific to any particular command line language. It basically provides Commands and Expressions which are created by the command line parser. There's also a special class, the ScriptingContext which saves user settings and also serves as a proxy to the "real" debugger classes.

So basically, we just need to write a new command line parser. I already had the idea of using reflection to do this - the "help" command, for instance, already does this.

We have, for instance:

[Command("CALL", "Call a function in the target")] public class CallMethodCommand : Command { public CallMethodCommand (VariableExpression expression, Expression[] arguments) { .... } }

The parser could use reflection to get all the public constructors from this class and then just call them with the appropriate arguments. In this example, it'd know that the "call" command takes a VariableExpression and a list of arguments.

A VariableExpression is basically an Expression which resolves to a variable in the target. For the parser, all that's important is that it's syntactically correct - it doesn't need to care whether such a variable exists, has the correct type etc.

This means that for instance "call $a" is syntactially correct for the parser - and the parser doesn't need to know what "$a" is. If it resolves to an int (so you can't call it), for instance, this'll be caught when the command is actually executed (resolved). It'll throw a ScriptingException - with an error message which is suitable to be displayed to the user.

Posted by martin at January 19, 2004 4:00 pm.

January 19, 2004 3:41 pm (permalink)

Snow

Had a really great weekend, but now the bad weather has finally reached us here in Trier. On Saturday, I was at the Scooter concert in Morbach. The concert was really great - I'm listening to their music for such a long time, but this was the first time I saw them live :-)

After the concert, we went to a club in Saarbruecken - that's actually in the opposite direction and I also needed to pickup a fried first, but it was still that early and a saturday night. As we finally reached the highway, the bad weather hit us, it was that foggy that I could hardly see anything and I was driving like 30 mph all the way.

However, the club was open until 5 am and they were playing really good music, so it was worth it :-) After that, we had an all-american breakfast in a cinema nearby (they were just making this excellent breakfast, not showing any films) and started driving home.

It took me over 2 hours to get back to Trier (and Saarbruecken is just about 50 miles away) since it was not only foggy, but also snowing like hell and I could hardly see the road.

Today, we actually have snow outside - and this doesn't happen very often in Trier ....

Posted by martin at January 19, 2004 3:41 pm.

January 05, 2004 11:53 am (permalink)

Happy New Year

It's the first monday in the new year and I spent the whole weekend hacking on the debugger. Tonight, I actually found the time to write some documentation. The SingleSteppingEngine is now almost completely documented and there's also a design document in CVS. I'm not yet completely done with it, especially since I haven't done the API cleanup yet and there's a lot of stuff which can be cleaned up.

However, I think the beginning of a new week is also a good time to do generics work again - especially since I got stuck in a really complicated problem before the holidays. Will provide more info about this tomorrow. I'm also starting to believe that I should add support for dumping typespec tables to monodis before continuing - I just need to know what exactly gmcs is writing into the assembly to check whether it's correct or now.

Ok, time for me to go to bed - tonight is Elvis night at the Irish Pub and I don't want to oversleep it because I hacked the whole night ....

Posted by martin at January 05, 2004 11:53 am.