为了账号安全,请及时绑定邮箱和手机立即绑定

为什么gdb输出致命错误?

为什么gdb输出致命错误?

Go
有只小跳蛙 2021-07-16 14:00:25
我正在学习使用 gdb 来调试 Go 程序。Go 版本是 1.2,在 linux/amd64 上运行。Go 程序非常简单:package main  import "fmt"func main(){    fmt.Printf("hello, world\n");}  使用gdb调试时,gdb输出为$ gdb helloGNU gdb (GDB) 7.6Copyright (C) 2013 Free Software Foundation, Inc.License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>This is free software: you are free to change and redistribute it.There is NO WARRANTY, to the extent permitted by law.  Type "show copying" and "show warranty" for details.This GDB was configured as "x86_64-unknown-linux-gnu".For bug reporting instructions, please see:<http://www.gnu.org/software/gdb/bugs/>...Reading symbols from /data2/home/nanxiao/hello...done.Loading Go Runtime support.(gdb) startTemporary breakpoint 1 at 0x400c00: file /data2/home/nanxiao/hello.go, line 3.Starting program: /data2/home/nanxiao/helloTemporary breakpoint 1, main.main () at /data2/home/nanxiao/hello.go:33       func main(){(gdb) nruntime: pc=0x400c13 0xcc 0xeb 0x48 0x83 0xecfatal error: runtime: misuse of rewindmorestackruntime stack:runtime.throw(0x56325f)    /data2/soft/go/src/pkg/runtime/panic.c:464 +0x69runtime.rewindmorestack(0xc210001148)    /data2/soft/go/src/pkg/runtime/sys_x86.c:41 +0xb4runtime.newstack()    /data2/soft/go/src/pkg/runtime/stack.c:230 +0x153runtime.morestack()    /data2/soft/go/src/pkg/runtime/asm_amd64.s:225 +0x61  根据我的理解,运行“n”命令后,gdb应该去下一个语句,输出是:fmt.Printf("hello, world\n");  为什么会输出以下“致命错误”?runtime: pc=0x400c13 0xcc 0xeb 0x48 0x83 0xecfatal error: runtime: misuse of rewindmorestack  首先十分感谢!
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 255 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信