c++ - GDB 在调试时损坏 - 没有控制台输出?

标签 c++ debugging gdb codeblocks

在升级到 Ubuntu 11.10 后,我刚刚尝试调试我的 C++ 程序,我正在运行的 gdb 版本 (7.3) 似乎无法用于调试输出。

发生了什么:

我点击调试,控制台窗口弹出,消息出现在顶部:

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

我没有从 std::cout 调用中得到任何输出,即使只是一个

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

有人能帮忙吗?我试着用谷歌搜索这个主题并提出了很多类似的问题,但不是与这个特定症状相关的问题,也没有解决它的方法。我已经确保我拥有最新版本的 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

如果这有帮助?...

最佳答案

我找到了答案 - 由于某些原因 C::B 没有将全局 -g 设置为默认值,所以我没有调试符号。我仍然收到奇怪的错误消息,但至少我现在得到了控制台输出:)

关于c++ - GDB 在调试时损坏 - 没有控制台输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9199279/

相关文章:

c++ - 为什么 `printf("%llu\n", 1ull << n) ;` and ` printf ("%llu\n", 1ull << 64);` 的输出在 C++ 中不同?(n=64)

使用 gdb 运行 R CMD 安装以调试 malloc 错误

python - 核心转储 : Extract all the global variables , 核心转储中的数据结构和子结构

debugging - Dart调试器未在断点处停止

debugging - eclipse mars中的Tomcat调试

c++ - Visual Studio 。调试。如何将变量在运行期间拥有的所有值保存到文件中?

无法更改函数 x64 的返回地址

c++ - 全屏效果的opengl纹理坐标

c++ - lang支持__null吗?

c++ - C++ 中 Curiously Recurring Template Pattern (CRTP) 的多态集合?