GDB在DEV c++中停止运行

GDB in DEV C++ stalls on cout

本文关键字:运行 c++ DEV GDB      更新时间:2023-10-16

我最近开始在DEV c++中编程,我遇到了一个问题,在这里搜索谷歌还没有证明有帮助。

在下面的代码中,GDB在到达第5行std::cout << "Hello" << std::endl;时"挂起"。

#include <iostream>
int main()
{
    int tree = 9;
    std::cout << "Hello" << std::endl;
    tree = 10;
    return 0;
}

程序编译并运行得很好,但是当分步执行时,它总是卡在这里,"Next line"或"Continue"似乎都不起作用。

下面是GDB窗口的一些输出:

Starting program: C:XXXXXXXXXXXXbreakGDB.exe 
[New Thread 7300.0x2028]
->->new-thread
[New Thread 7300.0x2638]
->->new-thread
->->starting
->->breakpoints-invalid
->->frames-invalid
->->breakpoint 1
Breakpoint 1, 
->->frame-begin 0 0x40153d
->->frame-function-name
main
->->frame-args
 ()
->->frame-source-begin
 at 
->->frame-source-file
hello.cpp
->->frame-source-file-end
:
->->frame-source-line
5
->->frame-source-end

->->source C:XXXXXXXXXXXXhello.cpp:5:38:beg:0x40153d
->->frame-end
->->stopped
->->pre-prompt
(gdb) 
->->prompt
->->post-prompt
->->frames-invalid
->->starting
->->frame-begin 0 0x44d2f0
->->frame-address
0x000000000044d2f0
->->frame-address-end
 in 
->->frame-function-name
std::ostream::operator<<(std::ostream& (*)(std::ostream&))
->->frame-args
 ()
->->frame-end
->->stopped
->->pre-prompt
(gdb) 
->->prompt
->->post-prompt
Single stepping until exit from function _ZNSolsEPFRSoS_E,
which has no line number information.
->->frames-invalid
->->starting
->->frame-begin 0 0x46cf10
->->frame-address
0x000000000046cf10
->->frame-address-end
 in 
->->frame-function-name
std::basic_ostream<char, std::char_traits<char> >& std::endl<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&)
->->frame-args
 ()
->->frame-end
->->stopped
->->pre-prompt
(gdb) 
->->prompt

我对GDB很陌生。这是GDB的一个特性吗?我设置错了吗?这是怎么回事?

我祈祷不是我犯了什么愚蠢的错误

我有同样的问题,并通过将编译器设置从64位调试切换到32位调试来"解决"它。

仍然需要64位的解决方案。

// Dev-Cpp 5.11 TDM-GCC x64 4.9.2 Portable