Native line numbers- July 26, 2007 After finally fixing the performance leak last week, I started to work on another rather difficult problem. It all started with a rather trivial bug report: Miguel sent me a small moonlight application and said that the debugger would crash when trying to get a backtrace from within an event handler. Sounded like a rather trivial problem, so I started debugging .... Things turned out to be a lot more complicated - after spending a lot of time doing some research on inline methods and...http://primates.ximian.com/~martin/blog/entry_169.html Debugger Performance- July 19, 2007 Last night, I finally found the performance problem in the new debugger code - and it was really trivial: We were missing a mono_debugger_unlock(), so we got a deadlock on exit. There's a 2 second timeout in mono_domain_finalize() when it's called from mini_cleanup() and we have 39 nunit tests - makes exactly 78 seconds in total. Things are now fixed and the new debugger code is as fast as the old one :-)http://primates.ximian.com/~martin/blog/entry_168.html More performance problems - I feel like I'm seeing ghosts ....- July 16, 2007 On Saturday, I finally completed the new symbol table code. Last week, I already noticed a really huge performance leak, so I spent some more time investigating. Unfortunately, I'm getting more and more confused the more I play with this. At the moment, I feel like I'm seeing ghosts ..... Running the complete debugger test suite in the old debugger takes about 65-70 seconds. In the new debugger code, it takes about 150-160 seconds. So that's more than twice the time and we must have a...http://primates.ximian.com/~martin/blog/entry_167.html More symbol table stuff- July 11, 2007 My new breakpoint code is coming along really good :-) Yesterday, I got all the required features working so I started testing. The good news is that this code actually works - multiple appdomains and generic instances are working just fine :-) The longer I'm working on this, the more problems I find in the old symbol table code. There is, for instance, a piece of code which never worked for the past 2 years - but nobody ever noticed because it can only be triggered if you run a really,...http://primates.ximian.com/~martin/blog/entry_166.html Method lookups, symbol files and breakpoints- July 9, 2007 Last week, I started to work on true multi-appdomain support for the debugger. Soon, I realized that there's also another problem: generics. Both appdomains and generics have one thing in common: a single method may be JITed multiple times. Because of that, I decided to use a common interface in the symbol table code for both. Now, each method in the source code may have multiple addresses. To make things easier, I decided that in the case of generic methods, we may not insert a breakpoint.http://primates.ximian.com/~martin/blog/entry_165.html It can happen to the best of us .... and a long day with a lot of annoying paperwork is finally over- July 3, 2007 Until yesterday afternoon, I thought things like EC card fraud can't happen to you if you're always careful with using your card - well, I was very wrong about that, it can happen to anyone :-( Yesterday, after lunch I routinely checked the balance of my bank account using phone banking and was really shocked to hear that it was -4785 EUR - at the beginning of a month, something must be wrong. I immediately asked for customer support to check what was going on. First thing the customer...http://primates.ximian.com/~martin/blog/entry_164.html |