Как отладить ядро, сгенерированное двоичным файлом C ++, без символов отладки в Solaris?

Я знаю, что вы можете создать приложение в Linux без -g, а затем отладить файл core из приложения с помощью двоичного файла из того же кода, но с помощью -g (все остальные параметры одинаковы). Если вывод nm одинаков, то символы совпадают, и вы можете эффективно анализировать файл core.

Однако, хотя я успешно делал это в Linux, я не смог заставить это работать для Solaris. Я строю с -xO4, так что, возможно, уровень оптимизации не поддерживается -g? Я также попробовал -g0, и это тоже не сработало. Файл nm сильно отличается. Я также строю с -xs. Должен ли я построить без -xs вместо этого?

Прежде чем я попытаюсь проанализировать это дальше, кто-нибудь смог заставить это работать?

Чтобы было ясно, это проблема построения и использования отладочных библиотек после факта. Это возможно в Linux, если вы собираете с -g и всем остальным (-O3), но я не могу заставить его работать с нашей сборкой Solaris, которая использует -xO4.

Это не проблема согласования системных библиотек, потому что у меня уже есть копия системных библиотек от нашего клиента, и они отлично совпадают. Это наши библиотеки, которые не совпадают при сборке с символами отладки (-g0). Когда мы не используем -g0, наши символы хорошо совпадают, но мы не можем отладить до уровня источника и получить значения локальной и глобальной переменной.

2

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]