gpt4 book ai didi

gdb 抛出错误说程序有一个函数 "malloc"

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

我在gdb中执行了以下命令,控制台输出如下:

Rohan_gdb$ set $var = 15
Rohan_gdb$ p $var
$5 = 0xf
Rohan_gdb$ set $var = (int *)10
Rohan_gdb$ p $var
$6 = (int *) 0xa
Rohan_gdb$ set $char = "abc"
Rohan_gdb$ p $char
$7 = "abc"
Rohan_gdb$ set $char = (char *)"xyz"
evaluation of this expression requires the program to have a function "malloc".

(这里出现错误)

Rohan_gdb$ p $char
$8 = "abc"
Rohan_gdb$

这里我正在使用目标进行调试,而不是 native 调试。我正在使用 GNU gdb (GDB) 7.2 版本。是否可以使用脚本来解决。

最佳答案

我不知道如何解决您的具体问题,但我遇到了类似的问题。考虑到这个问题的年龄,也许这会提供一个线索。

问题是您的脚本试图在缓冲区中存储一个值,并且它必须为该存储分配一个新的缓冲区。存储要求可能是转换的结果,或者因为第二个字符串不在二进制文件中的常量字符串中。

要解决这个问题,要么将代码更改为不需要 malloc(据我所知,这有点成功或失败)。或者使 malloc 符号可用;加载允许 gdb 解析“_malloc”符号的符号表。

关于gdb 抛出错误说程序有一个函数 "malloc",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9466927/

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