c++ - 如何在Wxwidgets中调试?

标签 c++ gdb wxwidgets

我是 wxWidgets 的新手。到目前为止,最令我沮丧的是,有时在我通过编译并尝试运行 GUI 应用程序后,它的行为并不像我设计的那样,我不知道它有什么问题。有人建议我试试 GDB,但我找不到 GDB 的教程如何调试 wxWidgets。

我想知道有人可以给我一些链接,或者教我怎么做(主要是关于如何触发事件并停下来查看并继续运行)。

最佳答案

wxWidgets 最常见的两个问题似乎是:

  1. 使用 sizer 时的布局问题。
  2. 事件处理问题。

尝试使用调试器解决 (1) 是个坏主意。如果确实需要,您可以跟踪布局算法,但它可能只有在您已经知道该算法如何工作时才能很好地工作——因此一开始就不太可能出现此类问题。如果您刚刚开始使用 sizer,最好尝试在一些可视化对话框编辑器工具中重新创建您的布局。

对于 (2),明显的建议是在您的事件处理程序中放置一个断点(请参阅 gdb break 命令)。至少,这为您提供了一种可靠的方法来检查您的事件处理程序是否被调用。

否则我真的不认为有任何 wxWidgets 特定的调试技巧。使用来自 misc/gdb/print.py 的 pretty-print wxWidgets 源中包含的文件很方便,但为此您需要一个支持 Python 的 gdb。

关于c++ - 如何在Wxwidgets中调试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16288457/

相关文章:

c - 返回 libc 在 gdb 中有效,但单独运行时无效

c++ - 由于 SetBackgroundBitmap 导致的内存泄漏

c++ - 异步读取服务器 BoostAsio 不调用处理程序

c++ - 如何使元组的最小堆按第二个元素排序?

c++ - std::stable_sort 根本不稳定?

python - 如何在 ../src/x86/ffi64.c :158 处修复 Python 函数 "classify_argument"中的段错误

c++ - 为什么 date::floor 从 time_t 派生时计算 2 天前的日期

c++ - 使用 gdb 时找不到调试符号

python - 将矩形/正方形区域组合成更大的区域 - imshow/python

python - 如何停止 wxpython 中的线程?