首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >radare2: r_reg_get:断言'reg && name‘失败(第296行)

radare2: r_reg_get:断言'reg && name‘失败(第296行)
EN

Stack Overflow用户
提问于 2019-10-02 00:57:16
回答 1查看 59关注 0票数 2

我正在为radare2开发asm插件。我实现了反汇编函数,所以它使用以下命令返回反汇编指令:

代码语言:javascript
复制
r_strbuf_set (&op->buf_asm, line);

然而,在打印反汇编程序之前,我收到了一堆警告:

代码语言:javascript
复制
WARNING: r_reg_get: assertion 'reg && name' failed (line 296)

这发生在我的反汇编函数完成后,对于我的代码处理的每条指令。这种错误的来源可能是什么?它似乎与操作码结构无关,我填充的是寄存器名称。除了asm插件之外,还需要实现肛门插件吗?通常,我看到两者都适用于支持的体系结构。

EN

回答 1

Stack Overflow用户

发布于 2019-10-09 02:39:51

实现虚拟肛门插件就足以防止出现此警告。我添加了以下函数,并将其传递给了新插件:

代码语言:javascript
复制
static int mycpu_op(RAnal *anal, RAnalOp *op, ut64 addr, const ut8 *b, int len) {
  r_strbuf_init (&op->esil);
  op->size = 4;
  return op->size;
}

之后,它被指向如下:

代码语言:javascript
复制
RAnalPlugin r_anal_plugin_mycpu = {
    .name = "mycpu",
    .desc = "Long name",
    .license = "LGPL3",
    .bits = 32,
    .op = &mycpu_op
}

#ifndef R2_PLUGIN_INCORE
R_API RLibStruct radare_plugin = {
    .type = R_LIB_TYPE_ANAL,
    .data = &r_anal_plugin_mycpu,
    .version = R2_VERSION
};
#endif
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58189287

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档