GDB не работает во время отладки - нет вывода на консоль? - PullRequest
1 голос
/ 08 февраля 2012

Я только что попытался отладить свою программу на C ++ после обновления до Ubuntu 11.10, и оказалось, что версия gdb, которую я использую (7.3), не работает для вывода отладки.

Что происходит:

Я нажал отладку, всплыло окно консоли, вверху появилось сообщение:

warning: GDB: failed to set controlling terminal: Operation not permitted

Я не получаю вывод от вызовов std :: cout, даже просто

std::cout << "hi" << std::endl;

Кто-нибудь может помочь? Я попытался отыскать эту тему в Google и обнаружил много подобных проблем, но не связанных с этим конкретным симптомом, а с тем, как его исправить. Я убедился, что у меня последняя версия GDB и т. Д.

Приложение: я использую Code :: Blocks в качестве идеала.

Перестройка моего проекта с полным выводом командной строки дает:

-------------- Очистить: отладка в DungeonCrawlerCPP ---------------

Cleaned "DungeonCrawlerCPP - Debug"

-------------- Build: Debug in DungeonCrawlerCPP ---------------

g++ -Wall -fexceptions  -g -fpermissive -std=gnu++0x    -Iinclude  -c /home/reedja/CPPProjects/DungeonCrawlerCPP/main.cpp -o obj/Debug/main.o
g++ -Wall -fexceptions  -g -fpermissive -std=gnu++0x    -Iinclude  -c /home/reedja/CPPProjects/DungeonCrawlerCPP/src/ActionableObject.cpp -o obj/Debug/src/ActionableObject.o
/home/reedja/CPPProjects/DungeonCrawlerCPP/src/ActionableObject.cpp:1:9: warning: #pragma once in main file [enabled by default]
g++ -Wall -fexceptions  -g -fpermissive -std=gnu++0x    -Iinclude  -c /home/reedja/CPPProjects/DungeonCrawlerCPP/src/AppSettings.cpp -o obj/Debug/src/AppSettings.o
/home/reedja/CPPProjects/DungeonCrawlerCPP/src/AppSettings.cpp:1:9: warning: #pragma once in main file [enabled by default]
/home/reedja/CPPProjects/DungeonCrawlerCPP/src/AppSettings.cpp: In member function ‘void AppSettings::load(const char*)’:
/home/reedja/CPPProjects/DungeonCrawlerCPP/src/AppSettings.cpp:98:23: warning: statement has no effect [-Wunused-value]
/home/reedja/CPPProjects/DungeonCrawlerCPP/src/AppSettings.cpp:114:29: warning: statement has no effect [-Wunused-value]
g++ -Wall -fexceptions  -g -fpermissive -std=gnu++0x    -Iinclude  -c /home/reedja/CPPProjects/DungeonCrawlerCPP/src/Container.cpp -o obj/Debug/src/Container.o
/home/reedja/CPPProjects/DungeonCrawlerCPP/src/Container.cpp:1:9: warning: #pragma once in main file [enabled by default]
g++ -Wall -fexceptions  -g -fpermissive -std=gnu++0x    -Iinclude  -c /home/reedja/CPPProjects/DungeonCrawlerCPP/src/Entity.cpp -o obj/Debug/src/Entity.o
g++ -Wall -fexceptions  -g -fpermissive -std=gnu++0x    -Iinclude  -c /home/reedja/CPPProjects/DungeonCrawlerCPP/src/Item.cpp -o obj/Debug/src/Item.o
/home/reedja/CPPProjects/DungeonCrawlerCPP/src/Item.cpp:1:9: warning: #pragma once in main file [enabled by default]
g++ -Wall -fexceptions  -g -fpermissive -std=gnu++0x    -Iinclude  -c /home/reedja/CPPProjects/DungeonCrawlerCPP/src/Monster.cpp -o obj/Debug/src/Monster.o
/home/reedja/CPPProjects/DungeonCrawlerCPP/src/Monster.cpp:1:9: warning: #pragma once in main file [enabled by default]
g++ -Wall -fexceptions  -g -fpermissive -std=gnu++0x    -Iinclude  -c /home/reedja/CPPProjects/DungeonCrawlerCPP/src/Player.cpp -o obj/Debug/src/Player.o
/home/reedja/CPPProjects/DungeonCrawlerCPP/src/Player.cpp: In member function ‘void Player::attackMonster(std::string)’:
/home/reedja/CPPProjects/DungeonCrawlerCPP/src/Player.cpp:36:43: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
g++ -Wall -fexceptions  -g -fpermissive -std=gnu++0x    -Iinclude  -c /home/reedja/CPPProjects/DungeonCrawlerCPP/src/Room.cpp -o obj/Debug/src/Room.o
/home/reedja/CPPProjects/DungeonCrawlerCPP/src/Room.cpp:1:9: warning: #pragma once in main file [enabled by default]
g++ -Wall -fexceptions  -g -fpermissive -std=gnu++0x    -Iinclude  -c /home/reedja/CPPProjects/DungeonCrawlerCPP/src/tinystr.cpp -o obj/Debug/src/tinystr.o
g++ -Wall -fexceptions  -g -fpermissive -std=gnu++0x    -Iinclude  -c /home/reedja/CPPProjects/DungeonCrawlerCPP/src/tinyxml.cpp -o obj/Debug/src/tinyxml.o
g++ -Wall -fexceptions  -g -fpermissive -std=gnu++0x    -Iinclude  -c /home/reedja/CPPProjects/DungeonCrawlerCPP/src/tinyxmlerror.cpp -o obj/Debug/src/tinyxmlerror.o
g++ -Wall -fexceptions  -g -fpermissive -std=gnu++0x    -Iinclude  -c /home/reedja/CPPProjects/DungeonCrawlerCPP/src/tinyxmlparser.cpp -o obj/Debug/src/tinyxmlparser.o
g++  -o bin/Debug/DungeonCrawlerCPP obj/Debug/main.o obj/Debug/src/ActionableObject.o obj/Debug/src/AppSettings.o obj/Debug/src/Container.o obj/Debug/src/Entity.o obj/Debug/src/Item.o obj/Debug/src/Monster.o obj/Debug/src/Player.o obj/Debug/src/Room.o obj/Debug/src/tinystr.o obj/Debug/src/tinyxml.o obj/Debug/src/tinyxmlerror.o obj/Debug/src/tinyxmlparser.o    
Output size is 674.11 KB
Process terminated with status 0 (0 minutes, 6 seconds)
0 errors, 9 warnings

Если это поможет? ...

1 Ответ

0 голосов
/ 09 февраля 2012

Я нашел ответ - по какой-то причине C :: B не устанавливает глобальный -g по умолчанию, поэтому у меня не было отладочных символов.Я все еще получаю странное сообщение об ошибке, но, по крайней мере, теперь я получаю вывод на консоль

...