mdbの形式違いか

  • 投稿日:
  • by
  • カテゴリ:



そんなエラーが出てました。正式リリースでサポートされるまで待つということで。




ERROR [2008-08-15 20:04:46Z]: Mono.CompilerServices.SymbolWriter.MonoSymbolFileException: Cannot read symbol file `/usr/local/lib/mono/gac/Mono.Cairo/1.0.5000.0__0738eb9f132ed756/Mono.Cairo.dll.mdb'



結局monoコンパイラとデバッガのバージョンが合ってないんですよね。


SVNからのbz2塊をとってきただけなので、運が悪いのだろうと。


ちょいと古いmdbならデバッグはできるんですよね。



[syasuda@localhost Debug]$ mdb HelloWorld.exe
Mono Debugger
(mdb) b Main
Breakpoint 2 at Main
(mdb) r
Starting program: HelloWorld.exe
WARNING: Got event 137f for unknown pid 10372
Can't insert breakpoint 2 at 0xb797c28e: Already have breakpoint 1 at address 0xb797c28e.
Thread @1 stopped at #0: 0xb797c28e in HelloWorld.MainClass.Main(string[])+0x6 at /home/syasuda/Projects/test/HelloWorld/Main.cs:10.
10 int a = 0;
(mdb) l
9 {
10 int a = 0;
11 int b = a+1;
12
13 Console.WriteLine( a.ToString());
14
15 Console.WriteLine("Hello World!");
16 }
17 }
18 }
(mdb) p a
(int) 159659732
(mdb) s
Thread @1 stopped at #0: 0xb797c29c in HelloWorld.MainClass.Main(string[])+0x14 at /home/syasuda/Projects/test/HelloWorld/Main.cs:13.
13 Console.WriteLine( a.ToString());
(mdb) p
ERROR: Argument expected
(mdb) p a
(int) 0
(mdb) p b
(int) -1214791032
(mdb) l
12
13 Console.WriteLine( a.ToString());
14
15 Console.WriteLine("Hello World!");
16 }
17 }
18 }
(mdb) s
Thread @1 stopped at #0: 0xb797c2db in int.ToString()+0x3 at /home/syasuda/src/mono/mono-110528/mcs/class/corlib/System/Int32.cs:628.
628 return NumberFormatter.NumberToString (m_value, null);
(mdb) s
0
Thread @1 stopped at #0: 0xb797c2ad in HelloWorld.MainClass.Main(string[])+0x25 at /home/syasuda/Projects/test/HelloWorld/Main.cs:15.
15 Console.WriteLine("Hello World!");
(mdb) s
Thread @1 stopped at #0: 0xb797ee53 in System.Console.WriteLine(string)+0x3 at /home/syasuda/src/mono/mono-110528/mcs/class/corlib/System/Console.cs:401.
401 stdout.WriteLine (value);
(mdb) s
Thread @1 stopped at #0: 0xb7981971 in System.IO.SynchronizedWriter.WriteLine(string)+0x9 at /home/syasuda/src/mono/mono-110528/mcs/class/corlib/System.IO/TextWriter.cs:583.
583 lock (this){
(mdb) s
Thread @1 stopped at #0: 0xb798197b in System.IO.SynchronizedWriter.WriteLine(string)+0x13 at /home/syasuda/src/mono/mono-110528/mcs/class/corlib/System.IO/TextWriter.cs:584.
584 writer.WriteLine (value);
(mdb) s
Thread @1 stopped at #0: 0xb79819b3 in System.IO.TextWriter.WriteLine(string)+0x3 at /home/syasuda/src/mono/mono-110528/mcs/class/corlib/System.IO/TextWriter.cs:292.
292 Write (value);
(mdb) s
Thread @1 stopped at #0: 0xb79819de in System.IO.UnexceptionalStreamWriter.Write(string)+0x6 at /home/syasuda/src/mono/mono-110528/mcs/class/corlib/System.IO/UnexceptionalStreamWriter.cs:123.
123 base.Write (value);
(mdb) s
Thread @1 stopped at #0: 0xb7981a2a in System.IO.StreamWriter.Write(string)+0xa at /home/syasuda/src/mono/mono-110528/mcs/class/corlib/System.IO/StreamWriter.cs:314.
314 if (DisposedAlready)
(mdb) c
Hello World!
(mdb) Thread @1 exited.
Process #1 exited.
Target exited.

ERROR: No target.
(mdb)

ソースはHelloWorldyなカンジのもので。



class MainClass
{
public static void Main(string[] args)
{
int a = 0;
int b = a+1;

Console.WriteLine( a.ToString());

Console.WriteLine("Hello World!");
}
}