GDB输出的解释
Interpretation of GDB output
我没怎么用过GDB。通常我检查简单变量但从不 类。这次我正在检查 类 因为我开始一个新项目 (LLVM)。
这是
的输出
disp CachedTable
CachedTable = {<llvm::DenseMapBase<llvm::DenseMap<std::pair<unsigned int, unsigned int>, unsigned int, llvm::DenseMapInfo<std::pair<unsigned int, unsigned int> > >, std::pair<unsigned int, unsigned int>, unsigned int, llvm::DenseMapInfo<std::pair<unsigned int, unsigned int> > >> = {<No data fields>}, Buckets = 0x1a9e190, NumEntries = 2, NumTombstones = 0, NumBuckets = 64}
如何解释此输出?
感谢任何帮助。
这是 llvm::DenseMap
class.
的数据成员的输出
(http://llvm.org/docs/doxygen/html/DenseMap_8h_source.html)
输出的第一部分表示它的基classllvm::DenseMapBase
没有数据成员:
<llvm::DenseMapBase<llvm::DenseMap<std::pair<unsigned int, unsigned int>, unsigned int, llvm::DenseMapInfo<std::pair<unsigned int, unsigned int> > >, std::pair<unsigned int, unsigned int>, unsigned int, llvm::DenseMapInfo<std::pair<unsigned int, unsigned int> > >> = {<No data fields>}
其余输出打印 llvm::DenseMap
数据成员值:
Buckets = 0x1a9e190, NumEntries = 2, NumTombstones = 0, NumBuckets = 64
通常很难像这样解释一行输出,尤其是对于来自未知代码的长 structs/classes,因此值得打开 gdb 的漂亮打印模式:
(gdb) set print pretty on
set print pretty on
Cause gdb to print structures in an indented format with one member per line, like this:
= {
next = 0x0,
flags = {
sweet = 1,
sour = 1
},
meat = 0x54 "Pork"
}
我没怎么用过GDB。通常我检查简单变量但从不 类。这次我正在检查 类 因为我开始一个新项目 (LLVM)。
这是
的输出disp CachedTable
CachedTable = {<llvm::DenseMapBase<llvm::DenseMap<std::pair<unsigned int, unsigned int>, unsigned int, llvm::DenseMapInfo<std::pair<unsigned int, unsigned int> > >, std::pair<unsigned int, unsigned int>, unsigned int, llvm::DenseMapInfo<std::pair<unsigned int, unsigned int> > >> = {<No data fields>}, Buckets = 0x1a9e190, NumEntries = 2, NumTombstones = 0, NumBuckets = 64}
如何解释此输出?
感谢任何帮助。
这是 llvm::DenseMap
class.
的数据成员的输出
(http://llvm.org/docs/doxygen/html/DenseMap_8h_source.html)
输出的第一部分表示它的基classllvm::DenseMapBase
没有数据成员:
<llvm::DenseMapBase<llvm::DenseMap<std::pair<unsigned int, unsigned int>, unsigned int, llvm::DenseMapInfo<std::pair<unsigned int, unsigned int> > >, std::pair<unsigned int, unsigned int>, unsigned int, llvm::DenseMapInfo<std::pair<unsigned int, unsigned int> > >> = {<No data fields>}
其余输出打印 llvm::DenseMap
数据成员值:
Buckets = 0x1a9e190, NumEntries = 2, NumTombstones = 0, NumBuckets = 64
通常很难像这样解释一行输出,尤其是对于来自未知代码的长 structs/classes,因此值得打开 gdb 的漂亮打印模式:
(gdb) set print pretty on
set print pretty on
Cause gdb to print structures in an indented format with one member per line, like this:
= {
next = 0x0,
flags = {
sweet = 1,
sour = 1
},
meat = 0x54 "Pork"
}