我正在學(xué)習(xí)使用 gdb 來調(diào)試 Go 程序。Go 版本是 1.2,在 linux/amd64 上運(yùn)行。Go 程序非常簡單:package main import "fmt"func main(){ fmt.Printf("hello, world\n");} 使用gdb調(diào)試時,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 根據(jù)我的理解,運(yùn)行“n”命令后,gdb應(yīng)該去下一個語句,輸出是:fmt.Printf("hello, world\n"); 為什么會輸出以下“致命錯誤”?runtime: pc=0x400c13 0xcc 0xeb 0x48 0x83 0xecfatal error: runtime: misuse of rewindmorestack 首先十分感謝!
- 1 回答
- 0 關(guān)注
- 275 瀏覽
添加回答
舉報
0/150
提交
取消