自定义内核调试器性能问题
Windows内核调试
自定义内核调试器性能问题
Abstr
2016-03-03, 10:58 上午
我自己用DbgEng.dll导出的api写了一个内核调试器,使用VMWare双机调试的模式,我尝试在某个驱动文件中下断后,可以正常获得断电命中的调试事件。
但是,我遇到了两个严重的问题:
1、设置断点的速度很慢,比如我设置1万个断点,光断点设置就要20分钟以上。
2、断点命中的速度也很慢,从断点命中到反映到调试器,再到断电恢复,每个断点到需要1s左右。在断点数量较多时,这个性能显然不能接受。
因为是使用com口115200来连接的,我想问下这些性能问题是因为com的连接虚拟机的方式带来的(我是否可以考虑换真机或者其他连接模式<网络or火线>)还是windows调试引擎的设计就是如此的性能表现。
Re: 自定义内核调试器性能问题
Abstr
2016-03-03, 11:56 上午
我做了一些功课,目前得到的信息包括:
卡顿的性能问题来自两个方面:
1、com线115200bps的连接速率为卡顿做了很大贡献
2、windbg与com口通信的协议也影响速率
现在我有两个思路:
1、通过VMWare虚拟机,看看能不能通过火线1394或者usb来实现双机调试,以此解决卡顿问题
2、通过火线(或者usb线)将两台实体机相连,解决问题
目前两个思路,都遇到了瓶颈
1、VMWare对火线和usb连接的支持,目前没找到相关资料(找到的资料都是泼冷水的<汗>)
2、真机实线连接的话,我的pc没有1394口,另外usb线好像很贵,而且不太好买,现在我的内心有点崩溃
Re: 自定义内核调试器性能问题
格蠹老雷
2016-03-04, 19:54 下午
调试引擎支持的断点数量是有限制的,是不可以设置那么多的,设置多了没有用,g的时候会报错的