我正在尝试使用GDB python API改进我自己的GDB漂亮打印机。在
目前我正在用一个核心测试它们。在
我正在尝试获取一些QMap,QList内容的信息,但是它们有太多的元素,因此用它的内容打印它们非常慢(几分钟)。在
所以,我想知道是否有任何已知的方法来描绘哪些部分速度较慢。在
我已经检查了Python profile manual和{a2},但是我不知道如何在GDB执行周期中使用它们。在
在gdbcommands.txt公司名称:
source /home/user/codigo/git/kde-dev-scripts/gdb/load-qt5printers.py
source /home/user/codigo/myownprinters.py
core ../../core.QThread.1493215378
bt
p longQMapofQList
链接到load-qt5-printers.py content:
然后我启动gdb来自动运行这些命令:
^{pr2}$
Qt-pretty打印机是否遵守
print-elements
限制?你的限额定得太高了吗?在分析在这里不太可能有帮助:如果您要打印一个包含(比如)1000个元素的列表,那么GDB可能需要执行10000个或更多的
ptrace
调用,并且~所有的时间都在等待这些调用。在您可以在
strace -c
下运行gdb
,并观察在打印包含10个元素和100个元素的列表时执行了多少个ptrace
。在如果增加是线性的,你可以尝试优化漂亮的打印机来减少访问。如果增长是二次方的,那么漂亮的打印机可能会进行不必要的指针跟踪(这当然可以解释为什么打印长列表需要几分钟)。在
相关问题 更多 >
编程相关推荐