(dbx) stop change variable |
dbx 会将程序停止在引起指定变量值更改的行后面的那一行。
如果 variable 是函数的局部变量,则第一次进入函数并分配 variable 的存储空间时,便认为该变量已更改。对于参数也是如此。
该命令无法与多线程应用程序配合使用。
有关指定更改事件的更多信息,请参见change variable和 stop 命令。
dbx 实现的 stop change 操作是自动单步执行且每一步都检查值。如果库未使用 -g 选项进行编译,则单步执行会跳过库调用。因此,如果控制按以下方式流动,dbx 便不会跟踪嵌套的 user_routine2,因为跟踪会跳过库调用和对 user_routine2 的嵌套调用。
user_routine calls library_routine, which calls user_routine2, which changes variable |
variable 值的更改是在从库调用返回后便已发生,而不是在 user_routine2 中发生的。
dbx 无法为块局部变量({} 中嵌套的变量)中的更改设置断点。如果尝试在块局部“嵌套”变量中设置断点或跟踪,dbx 会发出错误,说明无法执行此操作。
与使用 change 事件相比,使用 access 事件监视数据更改的速度更快。access 事件不是自动单步执行程序,而是使用速度更快的硬件或 OS 服务。