Информация об исходном коде отсутствует в SOS / SOSEX - PullRequest
0 голосов
/ 20 декабря 2018

Я использую cdb с расширением sosex.Кажется, все работает нормально, за исключением того, что я не могу разрешить какие-либо точки прерывания! Mbp для разрешения и! Mu /! Muf не отображает информацию об источнике.

Получил следующие команды:

.lines
sxe ld:clrjit
g
.loadby sos clr
.cordll -ve -u -l
.load c:\blah\sosex.dll
sxe ld:myassembly.dll
ld myassembly
!mbm myassembly!myfunction
g

Затем срабатывает интересующая меня функция и прерывается.Однако! Mu не показывает никакой информации об источнике, только IL и нативный.

Я проверил, что символы, включая информацию об исходных строках, были загружены, выполнив:

? `myassembly!c:\blah\whatevs.cs:20`

, который выводит на печатьправильное смещение.

Версия SOSEX является последней из stevestechspot.Запуск против .NET Framework 4.7.3.и cdb, и sosex x64.

Расположение исходного файла на машине совпадает с расположением в файле PDB.

ОБНОВЛЕНИЕ

Возникла та же проблема с SOS.IP2MD не показывает исходную строку.

1 Ответ

0 голосов
/ 21 декабря 2018

Я отлаживал через sos.dll, и он правильно преобразовал собственный адрес в IL-адрес и передал полученный IL-адрес функции в dbgeng, DebugClient :: GetLineByOffset ().Однако это вернуло E_FAIL, что из разборки кажется жестко закодированным.

Так что похоже, что SOS полагается на что-то, что больше не реализовано в обработчике отладчика для получения строки источника из смещения IL.

Сообщено: https://developercommunity.visualstudio.com/content/problem/414350/sos-debugger-extension-for-windbg-cant-find-source.html

Было приказано сообщить об этом как о проблеме WDK - здесь поднято: https://social.msdn.microsoft.com/Forums/en-US/2f9d4bbe-8322-4e8d-883a-e40d19f21209/sos-debugger-extension-for-windbg-cant-find-source-lines?forum=wdk

...