go - 使用Delve调试Go二进制文件期间如何更改寄存器值?

标签 go reverse-engineering delve

恰如问题所言:在调试Go二进制文件时,我想更改寄存器的值。 help set中的(dlv)返回:(dlv) help setChanges the value of a variable.[goroutine <n>] [frame <m>] set <variable> = <value>See $GOPATH/src/github.com/go-delve/delve/Documentation/cli/expr.md for a description of supported expressions. Only numerical variables and pointers can be changed.我看了一下文档,但听起来有些困惑。我感谢您的澄清。我只需要更改寄存器中的值。

最佳答案

delve debugger CLI set命令不提供对机器寄存器的访问。您只能设置源代码级变量。词组:

Only numerical variables and pointers can be changed.


意味着某些源代码变量无法通过这种方式进行操作,例如,您不能调用大多数运行时函数。例如,即使您拥有math/big,因此也有了NewInt,您也不能使用它来构建新的*Int值。

关于go - 使用Delve调试Go二进制文件期间如何更改寄存器值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65279689/

相关文章:

go - 如何在 VSCode 调试器中模拟交互式控制台?

c++ - 通过手动安装库来修复gcc undefined include <>

go - Delve 是否支持更改或某些变体的热交换?

ios - Photoshop 的选择性滤色器背后的数学/算法是什么?

c# - 逆向工程串行通信

使用 Delve : execute function 进行调试

go - 在 Mac OSX 中安装 Delve for GO

go - 解释: Don't communicate by sharing memory; share memory by communicating

go - 从 Go 编译器获取 "undefined: distance"错误

assembly - JNZ 和 CMP 组装说明