Met*_*est 3 c linux x86 gdb
gdb手册说以下内容。
警告:在多线程程序中,软件观察点的用途有限。如果gdb创建了软件观察点,则它只能在单个线程中观察表达式的值。如果您确信表达式只能由于当前线程的活动而改变(并且您还确信没有其他线程可以成为当前线程),则可以照常使用软件观察点。但是,当非当前线程的活动更改表达式时,gdb可能不会注意到。(相比之下,硬件监视点监视所有线程中的表达式。)
因此,如何使用gdb将监视点与多个线程一起使用,以使gdb可以看到从任何线程对监视变量的更改?
Bas*_*tch 5
通常,软件观察点的成本确实很高。如果您正在查看地址定义明确的标量数据,则可以使用硬件观察点,例如
p &myvar $1 = (int*) 0x1234556 watch *(int*) 0x1234556
这仅适用于简单的标量数据(单指针,单个整数,单个字节...)
归档时间:
13 年,11 月 前
查看次数:
1027 次
最近记录: