sarath.mk Ответов: 1

Отладка эталонной библиотеки dll(без исходного кода в решении)


Привет друзья,


Могу ли я отладить эталонную библиотеку dll, т. е. у меня нет исходного кода этой библиотеки в моем решении. Я просто добавлю dll, добавив ссылку.

Я слышал, что если dll построена путем включения режима отладки и использования файла .pdb, то отладка к эталонному коду dll может быть выполнена.

Спасибо,
Мск

1 Ответов

Рейтинг:
7

Sergey Alexandrovich Kryukov

Без исходного кода? Какая от этого польза? Ну, может быть, и есть, но очень мало. Один PDB вам не поможет.

Если у вас нет исходного кода, Вы все равно не сможете сделать исправление. Если у вас нет исходного кода, у вас есть отраженные метаданные, но для отладки вам нужно войти внутрь метода и выполнить его построчно, а тело метода не является частью метаданных, так что же вы будете отлаживать? В принципе это можно отладить на декомпилированный код, но я не думаю, что стандартный отладчик сделает это. Он может использовать разборка, что совсем не то же самое, что вы будете отлаживать IL-код инструкция за инструкцией.

You can simply experiment with Visual Studio. Create two assemblies with all the debug options, referencing one by the other by the DLL name: When using "Add Reference", add it from the "Browse" tab, because it should build when you remove the source code of the referenced assembly. Physically remove that source code; renaming of the project directory will be enough. Check that the entry assembly still runs while calling some method from the referenced assembly, because it uses just the DLL file. Make sure a PDB is created and not deleted, as well as the DLL. Now for the important step: You need to close Visual Studio and load the referencing application again. Debug it and try to "Step Into" the method of the referenced assembly to be called: Set a break point at this call and run the application to stop at this break point and press F11. You will see: "There is not source code available for the current location", with the option "Show Дisassembly". Сделайте это: вы увидите код IL, который можно отлаживать поэтапно. Не то, на что ты надеялся. И это тот случай, когда у вас действительно есть исходный код и вы можете

Кстати, какова ситуация, когда у вас нет исходного кода, но есть PDB? Вы можете иметь его в эксперименте, показанном выше, но кто даст вам PDB-файл без источника? Опять же, это не похоже на реальную жизненную ситуацию.

—СА


Abhinav S

Ясный ответ. 5.

Sergey Alexandrovich Kryukov

Спасибо, Абхинав.
--СА

Manfred Rudolf Bihy

Исправлены некоторые грамматические причуды!
В противном случае прекрасный ответ, 5+

Sergey Alexandrovich Kryukov

Большое спасибо за помощь, Манфред.
--СА

VJ Reddy

Хорошее объяснение. +5

Sergey Alexandrovich Kryukov

Спасибо, ви-джей.
--СА