调试器用于可视化图像数据。

4

是否有一款(最好是免费的)调试器可以在调试会话期间可视化图像缓冲区。

类似于:

  1. 我在断点处停下来。
  2. 然后我选择一个图像缓冲区,指示数据类型 - RBG、CMYK、8位、浮点数等等。
  3. 我会显示一个由该数据生成的图像(或将其保存)。

1
我不知道有这样的调试器。然而,在最近几年中,我发现自己越来越少使用调试器,而是依赖于调试输出。这种方法更加灵活,速度更快,通常可以让您从每个调试会话中获得更多信息。您可以将图像缓冲区的中间状态转储到以当前时间戳命名的图像文件中,精确到毫秒,如果名称冲突仍然发生,可能需要添加更多字符。 - Septagram
可能不行。即使是Visual Studio也无法为Microsoft自己的图像类型执行此操作。您只需将图像以某种适当的格式保存到磁盘上,并使用外部工具进行可视化即可。 - Rook
2
可以使用可扩展的调试器(例如GDB with Python)来实现。 - Some programmer dude
@Septagram 我最近有幸只能使用printf来调试一个应用程序,这是一次相当缓慢而痛苦的经历。你总是需要重新编译整个程序,如果你在其中有更多的变量,并且它们的变化越频繁等等,你就需要更多的printf。即使检查一个变量也需要重新编译和重新运行。通过日志进行调试是可行的,但如果你(例如)必须处理视频的每一帧,并且问题出现在第145帧左右,那么它并不适用于大规模。 - Dimitar Slavchev
@DimitarSlavchev,你说到了一个很有道理的缩放问题......至于 printf,我想那会非常痛苦。但在我的情况下,我使用更高级别的类(在 Qt 框架中,有一个优秀的 QDebug 类,它允许您将几乎所有 Qt 自定义数据类型发送到其中,就像流一样)。我想 STL 或 Boost 中也有类似的东西,但我不确定。 - Septagram
1个回答

2

如果您正在使用gdb调试程序,您可以在达到断点后从gdb提示符中调用自己的(或其他库函数)函数来可视化图像缓冲区,可能会在单独的窗口中显示。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接