#visual-studio #debugging #gdb
#visual-studio #отладка #gdb
Вопрос:
Во-первых, спасибо за всю помощь.
В Visual Studio мы можем выполнить Debug -> Step In без установки каких-либо точек останова. Похоже, что в GDB мы ДОЛЖНЫ использовать точки останова.
int main ()
{
int a = 10;
int b = 111;
return 0;
}
Моя цель — найти адреса каждой переменной (скажем, int a, int b). Я хочу знать значения до и после назначения a и b.
Если мы скомпилируем и запустим gdb с этим исходным кодом, программа завершится, и у нас не будет способа отследить стек.
Итак, есть ли способ выполнять шаг по одному оператору за раз в GDB, как мы делаем в VS?
Спасибо. (нет точки останова, невозможно использовать cout….no наблюдатели..)
Комментарии:
1. Плохой пример кода. Оптимизирующий компилятор может либо поместить a и b в регистр, либо даже полностью оптимизировать их.
2. @TurboJ Спасибо, что указали на это. Да, однако, это цель этого задания, и именно так профессор хотел показать ему в классе …
Ответ №1:
Да, вы можете вмешаться с помощью команды step (s) . Сначала вы запускаете программу (в отличие от использования run), чтобы она остановилась в начале.
Комментарии:
1. Рад, что смог помочь. Итак, вас учат программированию с использованием инструментов с открытым исходным кодом? Я рад это слышать 🙂
Ответ №2:
Вы можете поместить точку останова в main, а затем пошагово использовать next
. VS делает это неявно.
Комментарии:
1. Спасибо 🙂 Да, VS делает это неявно.