Поиск символов для исходного файла C ++ - PullRequest
0 голосов
/ 27 октября 2009

У меня есть проект C ++ WIN32. Я нашел проблему, которая некоторые символы могут быть распознаны с помощью Windbg, а некоторые нет. Я не знаю, почему. Характеристики:

1) оба метода C ++

2) обе функции находятся в одном файле .cpp

3) две функции очень близки в исходном файле и ни одна из они заключены в символ #ifdef

4) Я использовал dbh.exe для проверки символа, символ отсутствует в windbg также отсутствует в файле pdb.

Я предполагаю, что если символ отсутствует, возможно, из-за наследования учебный класс? Пожалуйста, предложите, спасибо! Бин

Ответы [ 3 ]

3 голосов
/ 27 октября 2009

Если вы не используете функцию, если она не является виртуальной функцией, она может быть заблокирована компоновщиком. Неиспользуемые объекты глобальных данных также могут быть заблокированы.

0 голосов
/ 27 октября 2009

Похоже, что исходный код может быть несовместим с файлами PDB.

Может быть, функция была добавлена ​​после создания файла PDB?

Вы можете подтвердить это:

  1. Добавьте точку останова в строку кода, которая, как вы знаете, будет выполнена.
  2. Пройдите по коду и убедитесь, что отладчик не останавливается на пустых строках кода (это может означать несоответствие между кодом и файлом PDB).

Первое, что я бы предложил, - это перестроить исходный код, чтобы посмотреть, решит ли это проблему.

Если это не сработает, предоставьте больше информации, чтобы мы могли помочь вам в дальнейшей диагностике.

0 голосов
/ 27 октября 2009

Функция когда-либо вызывалась?

Это может помочь дать более подробную информацию о том, почему вы думаете, что это «из-за наследования класса»

...