November 10, 2007

You are currently browsing the daily archive for November 10, 2007.

WinDbg有一个挺有意思的功能,叫做”Trace and Watch Data” — “wt”命令。WinDbg的help文件解释道:

The wt command runs through the whole function and then displays statistics, when you execute this command at the beginning of a function call.

也就是, 当你在debugging的时候,你step到一个function的开头(比如通过break point停在一个function开头),这时候你想获得关于这个function执行时候的详细信息,就在command窗口,输入wt,这时候debugger就会替你执行整个function到它return的地方,并提供给你这次执行的详细信息。比如下图,就是我用WinDbg attach到一个正在执行的notepad后,某次执行”wt”时得到的结果:

WinDbg, wt命令

可以看到,这个function执行的详细信息被显示出来。比如function在stack的call depth,以及每个被call的function的执行的指令数目, 被执行的system call等等。这个是动态执行的trace,是根据当时的具体输入来的,所以不会cover所有code。另外,因为inline function在这里不被显示为一个function call,所以你还可以知道那些function被编译器inline了,那些没有。

感觉这是一条很有用也很强大的命令,在performance tuning的时候能提供很多有用的信息。我这里描述的是最简单也是最常用的用法。更具体的用法,请查阅WinDbg的帮助文件。

Related posts

Tags: , ,

不愿意加Captcha, 一直都是用Wordpress自带的Akismet来防垃圾留言,迄今已经抓了>30,000条垃圾留言。但是最近几个月,漏网之鱼越来越多,决定换一个新的blog防垃圾留言服务,叫做Defensio。Defensio据说有比Akismet更加丰富的功能。试用一下吧。

Defensio的Wordpress插件的安装和激活过程和Akismet一模一样。

Related posts

Tags: , , ,