Отладочная информация моно с исключениями в Debian? - PullRequest
13 голосов
/ 15 марта 2011

Я думал, что apt-get install mono-dbg решит это, но я был не прав. Как я могу получить отладочную информацию с моно? Я использую Debian Squeeze, но не могу понять это на Debian Lenny или Etch.

Я написал фиктивную программу ниже, и я надеялся на номер строки, но я получил это вместо этого. Это копия / вставка из консоли / терминала.

Unhandled Exception: System.Exception: nooo blah
  at ExceptionTest.Program.func (Int32 a) [0x00000] in <filename unknown>:0
  at ExceptionTest.Program.func (Int32 a) [0x00000] in <filename unknown>:0
  at ExceptionTest.Program.func (Int32 a) [0x00000] in <filename unknown>:0
  at ExceptionTest.Program.Main (System.String[] args) [0x00000] in <filename unknown>:0

Код:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ExceptionTest
{
    class Program
    {
        static void Main(string[] args)
        {
            func(3);
        }
        static void func(int a)
        {
            if (a == 18)
                throw new Exception("nooo blah");
            func(a + a + 2);
        }
    }
}

1 Ответ

16 голосов
/ 16 марта 2011

Чтобы получить имена файлов и номера строк, скомпилируйте ваше приложение с помощью -debug (например, gmcs -debug prog.cs ) и затем запустите mono --debug prog.exe .

Пакет mono-dbg предоставляет вам символы отладки для / usr / bin / mono (и libmono).

$ gmcs -debug prog.cs
$ mono --debug prog.exe

Unhandled Exception: System.Exception: nooo blah
  at ExceptionTest.Program.func (Int32 a) [0x0001d] in /tmp/prog.cs:19 
  at ExceptionTest.Program.func (Int32 a) [0x00013] in /tmp/prog.cs:18 
  at ExceptionTest.Program.func (Int32 a) [0x00013] in /tmp/prog.cs:18 
  at ExceptionTest.Program.Main (System.String[] args) [0x00000] in /tmp/prog.cs:12 
...