我正在学习使用 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
提交
取消