使用DCI和RTIT技术进行精准调优--看录像
使用DCI和RTIT技术进行精准调优_哔哩哔哩_bilibili
每次看录像都记录一下。
PT/RTIT简介
DCI技术即通过USB3.0接口去访问调试目标机的JTAG组件,凡是运行在CPU上的代码均可以进行调试,这就没有了使用WinDBG调试时,会出现的不能调试敏感代码的问题,并且没有反调试的方法;如果想要提高调试技术的话,利用DCI技术去辅助自己,无疑是上乘的选择;这堂课,张银奎老师便会手把手的带你使用GDK7去调试!
1. 2012年以后的新的CPU才支持,当然现在是2025年了,大部分都支持。CPU记录是消耗内存的,BIOS中可以设置内存大小。甚至的是每个CPU占用的内存大小。
2. 讲课看来是2020年,nanocode还不完善,把ubuntu解析成了win7,这个工具看来还是在wind不过的思路基础上开发的。到处都是windbg的影子。
激活RTIT并抓取CPU日志
扩展命令!ptext64.help !ptext64.showoutputconfig
可以看到每个CPU有64k, 其中0,3号CPU已经
rdmsr 570 ---打开和关闭RTIT开关,可以查看intel手册
实际执行如下:
说明0号CPU是启用的。formats命令用来显示不同格式,很有用的技巧。
2号CPU最后是C,C的最后一位是0,所以2号CPU没有启用。
1号和2号都没有启用,用格蠹的!pto命令打开1号CPU,截图如下
在ubuntu上用绑定1号CPU的程序跑一段,然后再中断下来观察。
切换到1号CPU,关闭PT, ptf的f代表off,关闭的意思,没有成功,直接使用wrmsr 570 200c
使用!ptext64.showoutputconfig 可以看到1号CPU上有数据了
把内容保存到文件,是从DCI远程把数据取回
CPU的日记是这个样子:
看不懂,需要解码,如下命令:!ptd
程序流程包
使用测试程序geipt进行函数调优的演示,CPU日志加CR3过滤
!ps 0 0 geipt --没有显示CR3
!ps 列所有进程,终于找到了geipt的CR3
在未启用的2号CPU指定CR3的地址,把CR3作为过滤条件
在ubuntu上执行geipt程序,鼠标点几下。
先查看有没有数据:
有数据了。保存下来:
解码:!ptd --这是快速解码,这是过滤后的