Невозможно связать точку останова с MDbg (всегда несвязанный и неэффективный)

Я не могу установить какие-либо рабочие (не несвязанные) точки останова с помощью командной строки MDbg (.Net Managed Code Debugger) с модулями C#, скомпилированными с помощью csc, в командной строке, а также под Windows 10. Я провел целый день, пытаясь выяснить, как это исправить абсолютно безрезультатно. Вот подробные шаги, которые я предпринял, чтобы показать эту странную проблему.

подробности

Установлен MDbg с NuGet 4.4.1.4656:

nuget install MDbg -Version 0.1.0

И установите путь к xxx/NuGet/MDbg.0.1.0/tools. Затем скомпилировал простой тестовый исходный код C# (пробовал с.Net frameworks 3.5 и 4.7 с той же проблемой):

csc /debug+ /optimize- test0.cs

Содержание test0.cs:

using System;
using System.Collections.Generic;
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
           int max;
           try   {max=int.Parse(args[0]);}
           catch {max=222;}
           List<int> primes = CollectPrimesUpTo(max);
           Console.WriteLine(String.Join(", ", primes.ConvertAll(i => i.ToString()).ToArray()));
        }
        static List<int> CollectPrimesUpTo(int max)
        {
            List<int> result = new List<int>();
            for(int i=1; i<=max; i++) {
             int j, sq = (int)Math.Sqrt((double)i);
             for(j=2; j<=sq; j++) {
              if(i % j == 0)
               break;
             }
             if(j>sq)
              result.Add(i);
            }  
           return result;
        }
    }
}

Ниже приведен сеанс отладки, запускаемый в той же папке, где находятся test0.cs |.exe |.pdb, с различными попытками установки точек останова (многие пытались все равно попробовать): все несвязанные и не работающие, потому что команда go запускает программы для своего конец. [Нечто странное также - установка пути необходима для работы команды show. В противном случае вы получите это нелепое сообщение: "Ошибка: исходный файл" b:_limbo\GUIonCSharpMono-master\test0.cs "недоступен".]

D:\_limbo\GUIonCSharpMono-master>Mdbg test0 23
MDbg (Managed debugger) v0.0.0.0 started.
Copyright (C) Microsoft Corporation. All rights reserved.
For information about commands type "help";
to exit program type "quit".
run test0 23
STOP: Breakpoint Hit
located at line 9 in test0.cs
[p#:0, t#:0] mdbg> path D:\_limbo\GUIonCSharpMono-master
Path set to: D:\_limbo\GUIonCSharpMono-master
6      class Program
7      {
8          static void Main(string[] args)
9:*        {
10             int max;
11             try   {max=int.Parse(args[0]);}
[p#:0, t#:0] mdbg> x test0
~0. ConsoleApplication1.Program.Main(args)
~1. ConsoleApplication1.Program.CollectPrimesUpTo(max)
~2. ConsoleApplication1.Program..ctor()
~3. ConsoleApplication1.Program.<Main>b__0(i)
[p#:0, t#:0] mdbg> break ~1
Breakpoint #1 unbound (:1!ConsoleApplication1.Program::CollectPrimesUpTo(+0))
[p#:0, t#:0] mdbg> break CollectPrimesUpTo
Breakpoint #2 unbound (::CollectPrimesUpTo(+0))
[p#:0, t#:0] mdbg> break ConsoleApplication1.Program.CollectPrimesUpTo
Breakpoint #3 unbound (ConsoleApplication1.Program::CollectPrimesUpTo(+0))
[p#:0, t#:0] mdbg> break test0.cs:25
Breakpoint #4 unbound (line 25 in test0.cs)
[p#:0, t#:0] mdbg> break
Current breakpoints:
Breakpoint #1 unbound (:1!ConsoleApplication1.Program::CollectPrimesUpTo(+0))
Breakpoint #2 unbound (::CollectPrimesUpTo(+0))
Breakpoint #3 unbound (ConsoleApplication1.Program::CollectPrimesUpTo(+0))
Breakpoint #4 unbound (line 25 in test0.cs)
[p#:0, t#:0] mdbg> go
1, 2, 3, 5, 7, 11, 13, 17, 19, 23
STOP: Process Exited
mdbg> exit
D:\_limbo\GUIonCSharpMono-master>

Любая помощь, решение, предложение, идея, высоко ценится. Спасибо.

0 ответов

На мой взгляд, проблема заключалась в том, что файл PDB был в новом формате файла PDB Portable, который был представлен с.Net Core, однако MDbg понимает только устаревший формат PDB Windows или Full, который изначально использовался с.Net Framework, поэтому, чтобы он работал, используйте опцию при компиляции для создания полного вместо переносимого.

Другие вопросы по тегам