2013-09-18 2 views
2

Я видел документ здесь http://www.codeproject.com/Articles/3472/Finding-crash-information-using-the-MAP-file. Этот пример касается сбоя в файле Windows? Я ищу ту же математику, которая была сделана здесь для сбоя, созданного в системах Linux. Если я столкнулся с сбоем в Linux, то как мне отладить проблему в аналогичных строках, таких как документ Microsoft http://www.codeproject.com/Articles/3472/Finding-crash-information-using-the-MAP-file. Пожалуйста помоги? Адрес загрузки и адрес сегмента кода одинаковы в Linux? что указано в Linux, как указано в ссылке «Первая часть двоичного файла - это Portable Executable (PE) длиной 0x1000 байтов».?Отладка с использованием файла C в Linux?

+0

Скажем, у меня есть большой стек программного обеспечения. Драйвер приходит от одной компании, промежуточного программного обеспечения от другого и приложения от другого. Теперь, скажем, компания-разработчик разделила информацию об отладке, а затем как я могу найти сбой в своем модуле. Я получаю крах с некоторым значением адреса и символом ??. Это можно решить, только если у меня есть файл карты. Правильно?? Вопрос связан с такими сценариями, имеющими в виду. –

ответ

1

PE - это формат окна. Linux использует ELF. Конечно, вы можете разобрать ELF вручную, но вы не должны - gdb может это сделать для вас. Более того, вы можете использовать утилиту addr2line для сопоставления адреса в файл/строку в исходном коде (конечно, для обоих из них потребуется отладочная сборка).

Файлы карт редко используются в Linux - обычно это часть исполняемого файла debug. Однако он может быть сброшен из сборки отладки, но он не имеет слишком большого практического значения.

Кроме того, обратите внимание на How to use addr2line command in linux

+0

Скажем, у меня большой стек программного обеспечения. Драйвер приходит от одной компании, промежуточного программного обеспечения от одного и приложения от другого. Теперь, скажем, компания-разработчик разделила информацию об отладке, а затем как я могу найти сбой в своем модуле. Я получаю крах с некоторым значением адреса и символом ??. Это можно решить, только если у меня есть файл карты. –

+0

«Отладочная информация удалена» означает, что у вас нет файла карты, поэтому для вас нет символа, только адрес. Просьба уточнить, что у вас есть и чего вы хотите достичь. – keltar

+0

Итак, на ваш взгляд, нет способа узнать о сбое в варианте сборки релиза, который не имеет отладочных символов? –

Смежные вопросы