GDB выдает ошибку в Arch Linux

Когда я пытаюсь пройти через программу, gdb выдает эту ошибку

std::ostream::operator<< (this=0x6013c0 <std::cout@@GLIBCXX_3.4>, __n=2) at /build/gcc/src/gcc-build/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/ostream.tcc:110 110 /build/gcc/src/gcc-build/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/ostream.tcc: No such file or directory. 

Это программа, которую я пытаюсь отлаживать.

  • Как обновить календарь Google в Gnome?
  • Как позволить pacman заметить рубин, установленный rbenv?
  • Монтаж от дельфина до командной строки
  • Как определить, какие инструкции выполняет процесс?
  • Почему «init 0» приводит к «избыточным аргументам» при установке Arch?
  • Всплеск Плимута не работает и вызывает проблемы VT
  •  #include <iostream> int printPrime(int, int); int main() { int t, c; std::cin >> t; c = t; int m[t], n[t]; while (t--) { std::cin >> m[t] >> n[t]; } while (c--) { printPrime(m[c], n[c]); std::cout << std::endl; } return 0; } int printPrime(int m, int n) { do { int c = m; int lim = c>>2; if (c <= 1) continue; while (c-- && c>lim) { if (m%c == 0) { if (c == 1) { std::cout << m << std::endl; break; } break; } } } while(m++ && m<=n); } 

    С кодом программы нет проблем, поскольку он работает правильно. Я думаю, что это проблема с моей установкой GDB на Arch. Ошибка отображается при обнаружении cin или cout .

    Эта ошибка не отображается, когда я пытался запустить ее в моей Ubuntu VM

  • Где xfce4 поддерживает ссылки на приложения?
  • Плохой Wi-Fi с MacBook Air в середине 2012 года
  • Жаркие анимации с оболочкой гнома 3.12
  • Возможно ли зацикливание
  • Как установить разрешения для доступа к группе для чтения / выполнения
  • Получение ошибочной опции «-asroot» на пакетах
  • One Solution collect form web for “GDB выдает ошибку в Arch Linux”

    Я заполнил отчет об ошибке по этой проблеме: https://bugs.archlinux.org/task/47220

    Это происходит потому, что исходный файл ostream не найден.

    Обходной путь 1

    Вы можете лишить библиотеку libstdc ++:

     sudo strip /usr/lib/libstdc++.so.6 

    И тогда gdb не попытается открыть исходный файл, и ошибка больше не появится.

    Вы можете вернуться к незастроенной версии, переустановив ее с помощью:

     sudo pacman -S gcc-libs 

    Обходной путь 2

    Вы можете добавить правило подстановки в gdb:

     gdb tst (gdb) set substitute-path /build/gcc/src/gcc-build/x86_64-unknown-linux-gnu/libstdc++-v3/include /usr/include/c++/5.2.0 
    Linux и Unix - лучшая ОС в мире.