Когда вы говорите "не примет как действительные" точки останова отладки в коде C, что вы имеете в виду именно? Разве это не позволяет им? Если да, то была ли DLL загружена, когда вы устанавливаете точки останова? Я считаю, что это может упростить дело, если я подожду установки точек останова до тех пор, пока не буду уверен, что соответствующая DLL была загружена. Если это не то, что происходит, уточните, что вы подразумеваете под «действительными» контрольными точками.
Другие варианты: установить точки останова функции или скомпилировать DLL с помощью стратегически размещенных вызовов DebugBreak()
.
Вы уверены, что загружается правильная DLL (то есть отладочная версия)? Опять же, даже правильная DLL загружается, я не уверен, что ошибка обязательно относится к DLL, а не только к основному исполняемому файлу. Или могут возникнуть проблемы с загрузкой базы данных символов, как предлагает jdigital, при условии, что вы извлекаете их для отладочных сборок вашей DLL. Даже без отладочных символов отладка должна быть выполнимой, тем более что это DLL, вы можете работать с экспортированными символами.
Это не COM-компонент? Если это так, я бы дважды проверил, что отладочная версия была зарегистрирована до того, как вы запустите ваш процесс.
Опять же, мне все равно было бы интересно услышать, что именно происходит, когда вы пытаетесь установить точку останова. Если вы перейдете в окно точек останова в VS, это должно прояснить, почему точка останова не может быть установлена, если это то, что происходит.
Хм. У меня нет большого опыта работы с /Z7
, у вас все еще есть файл .obj для DLL? Документы, кажется, подразумевают, что это необходимо для отладки. В качестве альтернативы я бы попытался построить с /Zi
вместо этого и получить .pdb для этой присоски.