我有一个描述位图的结构。看起来像这样
struct bitmap {
int XSize;
int YSize;
unsigned char *pData;
};
当初始化此结构的实例时,pData指向数千个随机类但非零字节。当我打印结构的实例时,GDB显示了很多无意义的字节。这非常耗时。当这样一个变量的disp
处于活动状态时,我会得到每个步骤的输出,这会延迟调试。
是否有限制输出长度的GDB选项?
当字节无意义时,我可以将pData
的类型更改为void *
。但由于该结构用于预编译库,因此无法更改类型。 GDB用于print
和disp
的类型可以被“覆盖”吗?
答案 0 :(得分:1)
答案 1 :(得分:0)
设置print elements 4
会将pData
个字符的数量限制为4,但还会限制所有其他字符串和数组,这可能非常烦人(例如{{当实际值为print filename
时,1}}会产生/tmp...
。
一种可能更好的方法是为/tmp/foobar
编写一个Python漂亮的打印机(假设你有最新的GDB)。有关如何执行此操作,请参阅this answer。