Doxygen QGArray::at:绝对索引7645637866超出范围
我正在使用doxygen解析Linux内核()。运行超过20小时后,在生成调用图时,它会报告错误:Doxygen QGArray::at:绝对索引7645637866超出范围,doxygen,Doxygen,我正在使用doxygen解析Linux内核()。运行超过20小时后,在生成调用图时,它会报告错误:QGArray::at:Absolute index xxxxxxxxx超出范围。我分析了源代码,怀疑它可能是由doxygen master/qtools/qgarray.h:54 struct array_data : public QShared { // shared array array_data() { data=0; len=0; } char *data;
QGArray::at:Absolute index xxxxxxxxx超出范围
。我分析了源代码,怀疑它可能是由doxygen master/qtools/qgarray.h:54
struct array_data : public QShared { // shared array
array_data() { data=0; len=0; }
char *data; // actual array data
uint len;
};
我尝试为len
使用long
类型,重建并重新安装Doxygen,但是解析Linux还需要20个小时来检查它
我想知道如何完美地修复错误?剪切和粘贴警告消息总是很好的,您显示的消息并不存在,即使存在微小的差异(大写和小写),拥有准确的消息也很重要!在xxxxxxxxx上有值也很有用,因为我怀疑给出了一个值,这可能会给出一个线索。我不认为将
uint
更改为long
会有帮助。当然,如果uint
和long
,这取决于大小(字节)。另外,我不确定将long
值用作索引时会发生什么情况,并注意msg_index
方法中需要的更改。当然,在你的情况下,投资20小时是值得的。此外,了解此消息是出现一次还是多次,以及消息在控制台的输出中出现的位置将非常有用。doxygen配置文件中的任何特殊设置(请参见doxygen-x
)?也会对您用于doxygen的编译标记感兴趣,因为指定的值不适合32位无符号整数。我尝试将类型更改为long,并在Ubuntu 16.04上使用命令:cmake-G“Unix Makefiles.”,make,make install
。它运行它来解析Linux,然而,我停止了构建成员列表,没有退出,没有错误报告,没有更多的进展。它就停在那里。你说的“它就停在那里”是什么意思?你的意思是过程没有给出任何消息就终止了,还是它进入了一个无休止的循环?你能在gdb下运行doxygen吗?当它停止时,发出“where”命令?