GDB не видит некоторые классы, но видит другиеC++

Программы на C++. Форум разработчиков
Ответить
Гость
 GDB не видит некоторые классы, но видит другие

Сообщение Гость »


У меня возникла проблема с отладкой большой базы кода под Linux CentOS 6. Она состоит из основного исполняемого файла и нескольких файлов .so, которые загружаются динамически после того, как выясняется, откуда их загрузить.

У меня есть исходный код основного исполняемого файла и двух модулей. У меня нет доступа к большинству других модулей, но я могу найти расположение заголовков, проверив вывод make -n.

Для отладки я использую код Visual Studio. Я предоставил ему основные исходные коды и два модуля, и он может прекрасно отображать содержимое объекта.

Моя проблема связана с классами, которые определены в запрещенных модулях. VSC имеет заголовки в рабочей области, и, проверяя источники информации -exec, даже GDB узнает о дополнительных заголовках.

Однако, если класс содержит указатели на классы, определенные в двух модулях, которые я вижу, и в модулях Frobidden, я могу видеть только объекты из моих модулей, но не из запрещенных. В последнем случае VSC просто печатает {...}

Более того, представьте, что V — это класс из видимой базы кода, а F — из запрещенной базы кода. Проверка их размера в консоли отладки VSC дает:

-exec print sizeof(V) 3 доллара = 1800 -exec print sizeof(F) В текущем контексте нет символа «F». Что я делаю не так?
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»