Visual Studio — VS 2012 C ++: Могу ли я использовать исходные тексты вместо символов для отладки?

В настоящее время я пишу нативное расширение для NodeJS. Это в основном dll, который NodeJS будет загружать, когда вы просите об этом.

У меня есть VS2012, присоединенный к процессу Node. Я хочу отладить код узла, который выполняет загрузку.

У меня есть файлы .cc и .h для узла, но я не могу найти файлы .pdb. Как я могу установить точку останова в источнике узла?

ОБНОВЛЕНИЕ: У меня действительно есть файл node.lib. Может ли это быть заменой для pdb?

ОБНОВЛЕНИЕ 2: Tangential, но для любого, специально отлаживающего NodeJS, Node фактически отправляет pdb, доступный по адресу http://nodejs.org/dist/v0.8.22/node.pdb (замените номер версии на любую версию, которую вы ищете).

0

Решение

Без способа связать фактический исходный код с кодом сборки, вы не сможете отлаживать исходный код. Вам нужен файл pdb.

Подумайте об этом так: любой компилятор мог бы сгенерировать код, и даже если компилятор VS2012 сгенерировал код, VS не сможет перепроектировать весь этап генерации кода, чтобы узнать, к какой строке исходного кода принадлежит конкретная команда сборки. А с наклоном и тому подобным это еще больше усложняет задачу.

Таким образом, любой отладчик не может отлаживать без символов отладки, просто невозможно преобразовать семантику сборки в семантику языка более высокого уровня (вы теряете структурную информацию в процессе компиляции). В противном случае инструменты статического анализа было бы так легко написать.

редактироватьФайл .lib также не содержит отладочной информации, он просто необходим для ссылки на него. Так что тебе тоже не повезло.

1

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

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

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