Я нуб, изучающий c ++ и использующий gdb для отладки.
В Makefile я компилирую свой индивидуальный объект js, используя:
g++ -Wall -g -O0 -c foo.cc
g++ -Wall -g -O0 -c bar.cc
...
, затем компилирую весь исполняемый файл, используя:
g++ -Wall -g -O0 foo.o bar.o -lncursesw
Затем я использую GDB для step
через мой код. Он продолжает входить в стандартную библиотеку, поэтому я следовал этой рекомендации сценария , чтобы пропустить абсолютные имена файлов с префиксом /usr/include/c++/*
.
Теперь моя проблема
gdb пытается перечислить файлы, которых нет на моей машине. Если изнутри gdb (после команды start
) я выполняю info sources
, есть куча файлов с префиксом /build/gcc/*
, которых нет на моем компьютере. Почему GDB попытался получить к ним доступ?
При переходе по нему я не могу пропустить файлы, так как GDB скажет мне: «Нет такого файла или каталога»
std::basic_ifstream<wchar_t, std::char_traits<wchar_t> >::basic_ifstream (this=0x7fffffffc680, __in_chrg=<optimized out>,
__vtt_parm=<optimized out>) at /build/gcc/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/fstream:518
/build/gcc/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/fstream: No such file or directory.