gpt4 book ai didi

c++ - 调试模板代码 : What are some modern ways to do this on the command line?

转载 作者:太空宇宙 更新时间:2023-11-04 14:05:00 24 4
gpt4 key购买 nike

现在这可行了,但是它很丑陋,而且当你需要做很多事情时不太友好。

(gdb) break diff_match_patch<std::__1::basic_string<wchar_t, std::__1::cha
r_traits<wchar_t>, std::__1::allocator<wchar_t> >, diff_match_patch_traits
<wchar_t> >::diff_linesToCharsMunge
Breakpoint 4 at 0x100021a1c: file diff_match_patch.h, line 658.
(gdb)

我可以根据行号设置断点。这可能是我大多数时候会采用的方法,因为:

用函数名设置断点,如果恰好在一堆模板下面(比如继承STL容器的类...咕噜咕噜),就得经历这个磨难才能得到不敬的它的签名是为了打破一个功能。

我是这样实现的,在我的 OS X 10.8.4 上,你在 gdb 提示符下输入 break,然后开始使用前缀(在本例中是 diff_match_patch ,类的名称),然后尝试使用制表符完成。此时我使用 tmux 的搜索模式来隔离函数的签名(diff_linesToCharsMunge),你看我粘贴的是函数签名的开始部分,这足以让 gdb 愉快地运行在其上设置断点。

现在我想让它变得更好,但我不确定如何做。我想通过使用命令行来保持干净和健壮。

我认为,如果我想要一个漂亮(且友好)的 GUI 界面,一个好的方法是在 XCode 项目中设置此代码,然后从那里开始。

但是,如果我想采用更多核心 UNIX 风格的方法,我有哪些选择呢?

gdb 确实可靠(我很高兴它似乎可以与我的 clang 编译的 C++11 代码无缝协作),但它缺少许多细节,例如我们从中获得的东西ipython。 ipython 具有全面的语法高亮显示! clang 编译器会生成颜色漂亮且 super 友好(至少参见 gcc)的错误和警告。用甜美的波浪形向您展示冒犯性表情的部分!相比之下,gdb 就显得老生常谈了。

所以我只是想让这项工作少一点……痛苦。需要改进的地方...

  1. 从函数签名的中间开始进行 Tab 补全搜索,这样我就可以在键入函数的合理的人类已知名称后直接使用 Tab
  2. 实际上是关于总结的第一名,但欢迎任何可以做其他事情的可行解决方法(行号是其中之一,我猜……叹息)。你知道,我希望 clang 项目有一些史诗般的功能丰富的 gdb 前端。

最佳答案

哦,对了,我知道这件事,但忘记了。刚刚偶然发现另一个提到它的答案:

http://lldb.llvm.org/lldb-gdb.html

关于c++ - 调试模板代码 : What are some modern ways to do this on the command line?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17438491/

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