我希望将一个C++对象的内容(实现了循环缓冲区)输出到字符串以进行日志记录。我原本计划手动完成此操作,但是后来注意到在GDB调试器中运行print-object命令会给出一个漂亮格式化的输出,例如:
(gdb) print audioDebugMessageQueue
$1 = {
writePointer = 1,
readPointer = 0,
keys = {{
samples = {0.155292124, 0.106764726},
timeStamp = 1322767911,
numFrames = 1024
}, {
samples = {0, 0},
timeStamp = 0,
numFrames = 0
}, {
samples = {0, 0},
timeStamp = 0,
numFrames = 0
}, {
samples = {0, 0},
timeStamp = 0,
numFrames = 0
}, {
samples = {0, 0},
timeStamp = 0,
numFrames = 0
}, {
samples = {0, 0},
timeStamp = 0,
numFrames = 0
}, {
samples = {0, 0},
timeStamp = 0,
numFrames = 0
}, {
samples = {0, 0},
timeStamp = 0,
numFrames = 0
}, {
samples = {0, 0},
timeStamp = 0,
numFrames = 0
}, {
samples = {0, 0},
timeStamp = 0,
numFrames = 0
}}
}
如果GDB可以访问我的对象的漂亮转储,我认为我也可以。但是如何做到呢?顺便说一下,我在iOS上。