gpt4 book ai didi

c++ - 无法进入类方法gdb

转载 作者:行者123 更新时间:2023-11-28 06:01:43 24 4
gpt4 key购买 nike

我正在尝试通过 gdb 进入类中的方法。所以目前,我的 gdb 适用于独立功能。我可以很好地进入它们,但是,当我尝试进入一个方法时,它不会进入它。这是我的脚本:

#include <iostream>
using namespace std;

class test{
public:
void say_hello(){
cout<< "hello";
}
};

int main(){
test t;
t.say_hello();
return 0;
}

这是 gdb 在我按下运行“运行”命令后立即吐出的内容。

warning: `/BinaryCache/coreTLS/coreTLS-35.40.1~1/Objects/coretls.build/coretls.build/Objects-normal/x86_64/system_coretls_vers.o': can't open to read symbols: No such file or directory.
warning: Could not open OSO archive file "/BinaryCache/coreTLS/coreTLS-35.40.1~1/Symbols/BuiltProducts/libcoretls_ciphersuites.a"
warning: Could not open OSO archive file "/BinaryCache/coreTLS/coreTLS-35.40.1~1/Symbols/BuiltProducts/libcoretls_handshake.a"
warning: Could not open OSO archive file "/BinaryCache/coreTLS/coreTLS-35.40.1~1/Symbols/BuiltProducts/libcoretls_record.a"
warning: Could not open OSO archive file "/BinaryCache/coreTLS/coreTLS-35.40.1~1/Symbols/BuiltProducts/libcoretls_stream_parser.a"

这是我尝试单步执行时发生的情况:

Breakpoint 1, main () at test.cpp:13
13 t.say_hello();
(gdb) s
14 return 0;
(gdb)
0x00007fff91eec5c9 in start () from /usr/lib/system/libdyld.dylib
(gdb)
Single stepping until exit from function start,
which has no line number information.
hello[Inferior 1 (process 9896) exited normally]

如果有任何不同,当我运行 g++ --version 时,我得到 Apple LLVM 版本 7.0.0。谢谢。

最佳答案

默认情况下,GDB 会跳过不包含调试信息的函数。但很明显您拥有它,因为当您中断 main() 时您会看到“at test.cpp:13”。

我的猜测是您的 GDB 版本较旧,无法完全理解编译器生成的符号,因此无法进入成员函数。

如果我是你,我会首先尝试使用 lldb 调试你的程序(因为你的系统上已经安装了它),看看它是否运行良好。如果确实如此,那么问题确实出在旧的 GDB 上,所以我会升级到更高版本。

关于c++ - 无法进入类方法gdb,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33159172/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com