gpt4 book ai didi

gdb:按名称搜索函数以设置断点

转载 作者:行者123 更新时间:2023-12-04 22:21:44 24 4
gpt4 key购买 nike

我试图找出程序的哪一部分打印到 标准输出 .

我可以使用如下命令设置断点:b std::ostream::operator<<(int)
但是当我输入:b std::operator<<(std::ostream&, const std::string&)没有创建断点。

所以有两个问题:

  • 如何在 operator << (..., cosnt std::string&) 上设置断点?
  • 我想设置一个断点,但我不知道该函数的确切名称。如何使用正则表达式或其名称的一部分搜索函数?
  • 最佳答案

    使用“ info functions <<.*string ”搜索名称中包含 << string 的函数。 信息函数 将正则表达式作为参数。

    然后从列出的功能中选择您想要的功能。删除 在声明的末尾(如果有)并将声明作为参数粘贴到 break 命令:

    $ gdb -q ./ostream-operator-breakpoint 
    <...>

    (gdb) start
    Temporary breakpoint 1 at 0x4006b0: file ostream-operator-breakpoint.cc, line 4.
    Starting program: /home/scottt/Dropbox/stackoverflow/ostream-operator-breakpoint
    <...>

    (gdb) info functions <<.*string
    All functions matching regular expression "<<.*string":

    File /usr/src/debug/gcc-4.7.2-20121109/obj-x86_64-redhat-linux/x86_64-redhat-linux/libstdc++-v3/include/bits/basic_string.h:
    std::basic_ostream<char, std::char_traits<char> > &std::operator<< <char, std::char_traits<char>, std::allocator<char> >(std::basic_ostream<char, std::char_traits<char> >&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&);
    std::basic_ostream<wchar_t, std::char_traits<wchar_t> > &std::operator<< <wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >(std::basic_ostream<wchar_t, std::char_traits<wchar_t> >&, std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > const&);

    (gdb) break std::basic_ostream<char, std::char_traits<char> > &std::operator<< <char, std::char_traits<char>, std::allocator<char> >(std::basic_ostream<char, std::char_traits<char> >&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)
    Breakpoint 2 at 0x3cbfa94640: file /usr/src/debug/gcc-4.7.2-20121109/obj-x86_64-redhat-linux/x86_64-redhat-linux/libstdc++-v3/include/bits/basic_string.h, line 2750.

    动态链接程序需要 start (或 run )命令。除非您首先启动低级进程,否则 信息函数 不会列出来自 libstdc++ 等共享库的函数。

    关于gdb:按名称搜索函数以设置断点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16521799/

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