Visual Studio.
Как собрать DLL (в командной строке), чтобы отладка работала путем присоединения к процессу?
Насколько я знаю, вот что я делаю.
Чтобы собрать файлы * .cpp, я поставил эти флаги
кл / зи / од
Чтобы сделать DLL, я поставил эти
ссылка / DEBUG
У меня есть десятки файлов cpp, которые позже превращаются в DLL.
Но присоединение к процессу отладки не работает …
Должен ли я поставить больше флагов? Как проверить саму библиотеку DLL, если она имеет достаточно отладочной информации или нет?
Спасибо!
У вас есть файл PDB для DLL? Содержит ли он отладочную информацию для всех объектов?
Компилируете ли вы файлы с помощью cl / c, кроме параметров, упомянутых ниже.
Являются ли ваши результаты вашей компиляции — объекты скопированы куда-то перед тем, как связать их.
Pdbs также скопированы?
Это различные причины, вызывающие вашу проблему
Предполагая, что у вас есть 3 файла a.cpp, b.cpp & c.cpp, это то, что вы можете попробовать
cl /c /Zi /Fd c:\mypath\mydll.pdb a.cpp
cl /c /Zi /Fd c:\mypath\mydll.pdb b.cpp
cl /c /Zi /Fd c:\mypath\mydll.pdb c.cpp
link /DEBUG fullpathtoa\a.obj fullpathtob\b.obj fullpathtob\c.obj whatever other options.
Затем скопируйте pdb и dll оба & попробуйте отладить его.
Другое дело, что в большинстве отладчиков у вас есть диалоговое окно, которое показывает все загруженные двоичные файлы и соответствующие загруженные PDB.
Например,
Binary PDB
a.exe c:\abc\a.pdb
b.dll c:\pqr\b.pdb
c.dll Default symbols loaded.
Загруженные символы по умолчанию означают, что он не нашел PDB. Вы можете щелкнуть правой кнопкой мыши и т. Д. & укажите отладчику путь PDB, соответствующий c.pdb
В Visual Studio вы увидите вышеупомянутое в Параметре меню отладки -> Windows -> Модули.
В столбце «Состояние символа» будет показан путь к PDB или «Символы по умолчанию загружены». Что это показывает для вашей DLL?
Других решений пока нет …