QTrace的调试功能与跟踪功能

对于一个IDE来说,调试功能是必不可少的。QTrace除了普通的调试功能外,还提供了跟踪功能。

调试功能就是设置断点,程序运行到断点处停住,这是可以查看各种信息。

跟踪功能与调试功能的区别就是,跟踪功能在断点不停住,只是打印断点处的各种信息。之前说的《跟踪程序执行并UML序列图显示》也是跟踪功能的一种。

1.QTrace调试功能

1.打开源码,在对应的源码处,设置断点

注意选择断住(Suspend),这样程序执行到断点时,才会停住

QTrace的调试功能与跟踪功能

2.程序运行到断点时,会停住,并跳到对应的代码行,这样一般的IDE都是一样的

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UKjJCD3i-1596078403154)(https://i.loli.net/2020/07/17/lIpiKrNJySBXWEb.png)]

可以在Expression查看函数入参,this变量等

点击"当前线程与函数栈" 可以查看并选择函数堆栈

2.QTrace跟踪功能

1).打开源码,在对应的源码处,设置断点

注意:不要选择断住(Suspend); 这样程序执行到断点时,不会一直停在断点, 会继续运行。

脚本:程序执行到断点时,会执行脚本,脚本结果显示在Console面板。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FbJkcZOy-1596078403156)(https://i.loli.net/2020/07/17/jOqRod4ZtQa6AUY.png)]

QTrace支持多种断点类型:对类,函数,代码行,访问变量,修改变量。

当设置为类断点时,可以跟踪到该类的所有函数的执行。这个特别适合对类代码不是很熟悉时,分析类的执行。

QTrace有三种断住策略:

当前线程:运行到断点时,只断住当前线程, 执行脚本后,恢复程序执行

所有线程:运行到断点时,断住所有线程, 执行脚本后,恢复程序执行

无:不断住程序执行,该策略下不影响程序执行,速度最快。也不会因为断点太多导致调试连接失败等问题。不过该模式下,不能修改脚本,脚本只能打印程序执行位置。

2).结果显示在Console.

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RnBJPi6m-1596078403162)(https://i.loli.net/2020/07/17/6cA9lkdTY83Oi2a.png)]

可以点击函数Log,执行弹出菜单中的打开,可以跳到对应的源码。

同时<stace_stack>脚本在执行后,还会记录函数执行时的变量信息,点击V#按钮,可以查看这些离线变量。