关闭

OllyDbg完全教程 监视与监察器[Watches and inspectors] 线程[Threads]

2567人阅读 评论(0) 收藏 举报

十一,监视与监察器[Watches and inspectors]

监视[Watch] 窗口包含若干个表达式[expressions]。它在第二列里显示这些表达式的值。OllyDbg 会把这些表达式保存到主模块的.UDD文件中,因此它们在下一次调试时同样有效。

监察器[inspector]是显示若干变量、1/2维数组或是选定项目结构数组[selected items of array of structures]的独立窗口。它的表达式与监视窗口中的基本相同,只是多包含了两个参数:%A和%B。您可以指定这两个参数的界限,OllyDbg 将会用所有可能的组合代替表达式中的%A和%B。从0开始一直到界限(不包含界限),并在表格中显示结果。参数%B(列数)的界限不能超过16。

例如,如果您指定了表达式%A+%B,并且限定%A和%B的上限为3,您将获得如下的表格:

 

 

十三,线程[Threads]

OllyDbg 以简单而有效的线程管理为特色。如果您单步调试、跟踪、执行到返回或者执行到所选,则线程管理器将停止除当前线程以外的所有线程。即使当前线程被挂起,它也会将其恢复。在这种情况下,如果您手动挂起或者恢复线程,动作将被延期。如果您运行被调试的应用程序,OllyDbg将恢复最初的线程状态。(从调试器的角度来看,Hit跟踪[hit trace]和自由运行是等效的)。

依据这种方案,线程窗口可能会有如下五种线程状态:


激活[Active] - 线程运行中,或被调试信息暂停t
挂起[Suspended] - 线程被挂起
跟踪[Traced] - 线程被挂起,但OllyDbg正在单步跟踪此线程
暂停[Paused] - 线程是活动的,但OllyDbg临时将其挂起,并在跟踪其它的线程
结束[Finished] - 线程结束
.

线程窗口同时也显示了最后的线程错误(GetlastError函数的返回值)并计算该线程以用户模式和系统模式(仅NT/2000/XP)运行的时间。线程窗口还会高亮主线程的标识符。

以下在快捷菜单中可用:

刷新[Actualize] - 标记所有线程为旧的。

挂起[Suspend] - 挂起线程。

恢复[Resume] - 恢复先前挂起的线程。

设置优先级[Set priority] - 调整进程中线程的优先级。以下选项可用:

空闲[Idle] - 进程中线程的最低优先级
最低[Lowest]
低[Low]
标准[Normal]
高[High]
最高[Highest]
时间临界[Time critical] - 最高优先级
在CPU窗口打开[Open in CPU](双击)- 在CPU窗口中显示所选线程的当前状态。


 

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:108357次
    • 积分:1274
    • 等级:
    • 排名:千里之外
    • 原创:12篇
    • 转载:33篇
    • 译文:0篇
    • 评论:6条
    最新评论