题
我每天都在 Solaris10 上进行 C++ 开发的 TDD。它大大减少了我使用调试器所花费的时间,但有时这是唯一的选择。
DBX 非常强大,但用户界面不太友好。请注意,我谈论的是控制台 DBX,而不是 DBX 的 SunStudio GUI。
对于 dbx C++ 调试,您可以提供哪些最佳生产力技巧?
附言。更改调试器不是一个选项。
解决方案
我已经为一些与 dbx 相关的网站添加了书签。它们在这里,没有特定的顺序,以防它们可能对您有用:
- 为什么 dbx 找不到我的函数?
- Dbx 调试器的在线帮助
- 太阳工作室:使用 dbx 调试多线程应用程序
- gdb 对比数据库:命令映射和功能比较
- 将调试信息导入 dbx
- 命令行dbx:查看更多来源
- Sun Studio C++ - 您的 .dbxrc (注意:根据您的指针大小调整用于转换指针的整数类型)
- 太阳工作室:使用 dbx 调查内存泄漏
- 太阳工作室:从正在运行的进程收集内存分配/泄漏数据
2012年7月19日编辑:自从 Chris Quenelle 的博客移动后,我尝试修复多个链接。由于有回溯机,一些文章仍然可以访问。
其他提示
dbx的一个强大功能是内置ksh。您可以编写复杂的shell函数,以打印数据结构的自定义视图,或者按照特定路径中的指针进行操作。 shell是pdksh的旧版本,所以它不是最好的编程,但它比没有使用任何内置语言要好得多。命令行还提供了大量帮助。搜索帮助的一个技巧是使用“vi $ helpfile”。从dbx命令shell中。在一个大文件中编写原始帮助文件数据。您可以在dbx随附的dbxrc文件中看到一些shell函数示例,默认情况下会加载这些示例。您可以通过查看libumem集成模块来查看更复杂的示例。你可以在这里找到它:
http://blogs.oracle.com/quenelle/entry/using_dbx_and_libumem_to
我也 在工作中使用dbx并理解你的挫败感!
我发现的一些技巧让我的生活更轻松:
使用这样的内置命令系统: 什么时候停止{print ; }结果 当 超出范围时,显然不起作用,但我发现它足够有用。我还没有对'追踪'设施,YMMV感到高兴。
创建自己的.dbxrc文件可以让生活更轻松,“pathmap”也是如此。特征
最后,如果你已经知道这一点,这是显而易见的,但请尝试 Sun的手册。
写得不是特别好,但仍然是必读的。