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

How to change a register value during debugging a Go binary using Delve?

正如问题所说:在调试Go二进制文件时,我想更改寄存器的值。 help set(dlv) returns:

(dlv) help set

Changes 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 值。