QTrace的调试功能与跟踪功能
对于一个IDE来说,调试功能是必不可少的。QTrace除了普通的调试功能外,还提供了跟踪功能。
调试功能就是设置断点,程序运行到断点处停住,这是可以查看各种信息。
跟踪功能与调试功能的区别就是,跟踪功能在断点不停住,只是打印断点处的各种信息。之前说的《跟踪程序执行并UML序列图显示》也是跟踪功能的一种。
1.QTrace调试功能
1.打开源码,在对应的源码处,设置断点
注意选择断住(Suspend),这样程序执行到断点时,才会停住
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#按钮,可以查看这些离线变量。