gpt4 book ai didi

c - 使用 gdb 为多线程应用程序设置观察点

转载 作者:可可西里 更新时间:2023-11-01 11:50:32 25 4
gpt4 key购买 nike

gdb 手册说明如下。

警告:在多线程程序中,软件观察点的用处有限。如果 gdb 创建一个软件观察点,它只能在单个线程中观察表达式的值。如果您确信表达式只能由于当前线程的事件而改变(并且如果您还确信没有其他线程可以成为当前线程),那么您可以像往常一样使用软件观察点。但是,当非当前线程的事件更改表达式时,gdb 可能不会注意到。 (相比之下,硬件观察点观察所有线程中的表达式。)

那么,我如何使用 gdb 将观察点与多个线程一起使用,以便 gdb 可以看到任何线程对监视变量的更改?

最佳答案

一般来说,软件观察点的成本非常高。如果您正在观察地址定义明确的标量数据,则可以使用硬件观察点,例如

  p &myvar
$1 = (int*) 0x1234556
watch *(int*) 0x1234556

这仅适用于简单的标量数据(单个指针、单个整数、单个字节...)

关于c - 使用 gdb 为多线程应用程序设置观察点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8049817/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com