gpt4 book ai didi

api - GDB内部结构: Getting variable contents

转载 作者:行者123 更新时间:2023-12-01 16:04:13 25 4
gpt4 key购买 nike

我想向 gdb 源代码添加一个新命令,我可以使用 add_cmd 来做到这一点。

在命令后端,我想读取一些变量的内容并以与我更相关的格式打印数据。

我可以使用以下代码获取变量地址:

struct symbol *sym;

sym = lookup_symbol ("my_variable_name", get_selected_block (&context_pc), VAR_DOMAIN, NULL);

printf_filtered ("Symbol %s is ", sym->ginfo.name);
printf_filtered (" at address 0x%x\n", SYMBOL_VALUE(sym));

这给了我变量的地址:

(gdb) my_command
Symbol my_variable_name is at address 0x8049684

但是,我无法找到什么 API 可以为我提供该变量的内容。需要同样的帮助。

最佳答案

In the command backend, I want to read contents of a few variable and print data in a more relevant format to me.

您很有可能使用 Python pretty-printer 获得相同的结果。 。这不需要重建 GDB,很容易正确使用,并为 GDB 内部提供了一个安全的接口(interface)。

I am not able to find what API will give me the contents of this variable.

target_read_memory() 是最低级的 API,可以为您提供给定地址处的内存内容。

关于api - GDB内部结构: Getting variable contents,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13963216/

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