- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
现在这可行了,但是它很丑陋,而且当你需要做很多事情时不太友好。
(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
就显得老生常谈了。
所以我只是想让这项工作少一点……痛苦。需要改进的地方...
clang
项目有一些史诗般的功能丰富的 gdb 前端。最佳答案
哦,对了,我知道这件事,但忘记了。刚刚偶然发现另一个提到它的答案:
关于c++ - 调试模板代码 : What are some modern ways to do this on the command line?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17438491/
我是一名优秀的程序员,十分优秀!