Понятия не имею, что 9fdab2ac823a429cb7b8525426626ccc
Хеш-элемент (между <>
) - это идентификатор версии модуля (MVID
модуля сборки, к которому относится метод.
Они созданы таким образом, что собственный аварийный отказ (из приложения AOT) может быть символизирован через каталог символов Mono, который создается во время компиляции / AOT приложения через
mono --aot=msym-dir=<msym dir> .....
или использование mono-symbolicate
после фазы компиляции (вам нужны все оригинальные артефакты сборки):
mono-symbolicate store-symbols myExeWithDebugPDBsDirectory/msym-dir myExeWithDebugPDBsDirectory
Это производит каталог (myEXEwithDebugPDBsDirectory/msym-dir
), который содержит:
Каталог символов содержит подпапку с именем MVID или AOTID
- Подпапки MVID содержат файлы .dll / .exe и .mdb.
- Подпапка AOTID содержит файлы .msym.
Позже вы можете затем использовать mono-symbolicate
для обозначения вашего сбоя (используя msym-dir
из соответствующего приложения), чтобы создать "нормальный" управляемый код, выглядящий как исключение / трассировка стека.
Примечание: Вы также можете отключить эти моно «компактные» последовательности, установив env. вар. перед запуском exe:
MONO_DEBUG=no-compact-seq-points mono yourApp.exe
re: Почему в мои трассировки стека входят только номера строк, если отладчик подключен?