gpt4 book ai didi

c++ - 从 gdb 修改全局变量

转载 作者:太空宇宙 更新时间:2023-11-04 13:00:52 30 4
gpt4 key购买 nike

我正在尝试使用 GDB 修改全局变量。全局变量在共享库中定义 - 不确定这是否有任何区别。但是我收到错误消息“无法访问成员”。这是我正在做的:

$ gdb /usr/lib/libmylib.so
GNU gdb (GDB) Red Hat Enterprise Linux (7.2-56.el6)
...

(gdb) p GlobalVar1
$1 = 0

(gdb) info variable GlobalVar1
All variables matching regular expression "GlobalVar1":

File src/file.cc:
static volatile int GlobalVar1;

Non-debugging symbols:
0x00000000007d2f08 GlobalVar1
(gdb)

(gdb) info address GlobalVar1
Symbol "GlobalVar1" is static storage at address 0x7d2f08.

(gdb) set var GlobalVar1=1
Cannot access memory at address 0x7d2f08

知道为什么会失败吗?

最佳答案

你是在没有进程的情况下进行调试。 只需创建一些伪造的 hello-world 并将其链接到上述库:

#g++  -ggdb hello.cc   -lmylib
#gdb ./a.out
#gdb> b main
#gdb> r
#gdb>p globalVar1
#gdb> set globalVar1
...

关于c++ - 从 gdb 修改全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33925628/

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