ものがたり(旧)

atsushieno.hatenablog.com に続く

Mono.Debugger.Soft

Monoに新しく登場したsoft debuggerの話がたいへん分かりやすくまとめられている:
http://tirania.org/blog/archive/2009/Nov-04.html

soft debuggerについてはここで詳しく説明されているのだけど、
http://mono-project.com/Soft_Debugger

iPhonePlayStation3など、従来のmono debuggerやgdbが存在しない環境でデバッグできるような仕組みになっている。動的コード生成が行えない以上、デバッグのために必要なコードは全て事前コンパイルされて埋め込まれないといけないわけだ(managed codeのレベルで増えるわけではない)。

soft debuggerはそんなに厳密なものではないので、あくまでランタイムが「デバッグのために止まってもいいかな」と思った時にコールバックを呼び出す。らしい。あくまでsoftなdebuggerだというわけだ。

さてこのsoft debugger、別にiPhoneみたいなfull AOT環境でなくても使用することができる。単にランタイムに追加された新機能であるにすぎない。そしてMono.Debgger.Soft.dllというmanagedライブラリも提供されている。そんなわけで、このsoft debuggerが出てきたことで、触発されたハカーがいろいろ出てきた。この週末に、実にいろんな動きがあった。

まずmono on Windowsを積極的にいじっているハカーがWindows portを動かしつつあるようだ。mono debugger自体は、最近でこそMac portなんかも動いているらしいけど、ずっとLinuxオンリーだったので、soft debuggerのアプローチで、サポートの幅が広がるようだ。

そして、coreclrでも動かせるんじゃん?ということで、Moonlightのアプリケーションをデバッグするやつが出てきた。moonlightのデバッガについては、debuggerハカーがずっとMLチームから要求を突き上げられていたのだけど、ASP.NETとマルチappdomainまわりで不安定になっている間にMLチームでもうやっつけてしまったという感じだ。

そしてこのデバッガ、そのASP.NET方面でも動くんじゃね?ということで試してみたら動いたらしい。コードを見ていないのでスレッドの管理がどうなっているのかは分からないけど、大抵のユーザにとって、デバッガはもうこれでいいんじゃないのかという感じになってくる。

いま開発環境がAcerのリコール対象修理に出たまま予定を大幅に過ぎてまだ返ってこないという大変けしからんことになっていて、仕事にならなくて困っているのだけど、返ってきたら動かして試してみようかと思う。