“仅在 linux 的本机后端支持”对于 Delve 中的 call 命令意味着什么?

问题描述

问题 here 是相关的。我在 aarch64 Ubuntu 16.04 主机上使用 QEMU 模拟了 x86_64 Alpine Linux,该主机本身安装在 Mac 上的 VirtualBox 中。我一直在尝试使用 Delve call 命令来修改字符串值。我完全不知道该怎么做。尽管如此,即使是简单的 (dlv) call 也会返回:

(dlv) call

> main.my_function() /usr/lib/go/src/strings/strings.go:308 (hits goroutine(50):1 total:1) (PC: 0x4a929c)

Warning: debugging optimized function

Command failed: backend does not support function calls 特别是,(dlv) help call 返回

Resumes process,injecting a function call (EXPERIMENTAL!!!)

call [-unsafe] <function call expression>

当前限制:

  • 只有指向堆栈分配对象的指针才能作为参数传递。
  • 仅支持部分自动类型转换。
  • 函数只能在运行的 goroutine 上调用 执行运行时。
  • 当前的 goroutine 需要至少有 256 字节的可用空间 堆栈。
  • 函数只能在 goroutine 停在一个安全的地方时被调用 点。
  • 调用一个函数将恢复所有 goroutine 的执行。
  • 仅在 linux 的本机后端支持。

我认为这个问题可能与最后一个要点有关,但我不知道它到底是什么。如果有人对此有所了解,我将不胜感激。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...