想装个MinGW-W64玩玩64位GDB,才发现继上一博文MinGW安装和使用已三年了,不经意间到看到了下列帖子:
对于mingw-w64、tdm-gcc、Win-builds这三个小纠结一会,觉得自己本身也就是用一下GDB,还是去https://sourceforge.net/projects/mingw-w64/直接下载MinGW-W64好了。
MinGW-W64安装
所用MinGW-W64安装配置:
配置项 | 配置值 |
---|---|
Architecture | x86_64 |
Threads | posix |
Exception | seh |
Golang项目编译
编译Golang项目采用 go build -gcflags “-N -l”
关闭内联优化。
GDB调试
载入runtime-gdb.py脚本以对Go运行时结构进行完美打印和转换(例如显示slice和map值、查看goroutine等):
- 参数载入:gdb -d $GCROOT
- 手工载入:source C:\Go\src\runtime\runtime-gdb.py 折腾一会,最后还是折在GDB on windows with golang: buildsym_init Assertion “free_pendings == NULL” failed.这个问题上,一调试就DDB崩了,貌似目前无解。
Delve调试
不过Debugging Go Code with GDB里还介绍了另外一个对Golang支持更好的工具Delve。 上手容易,有些命令跟GDB差不多。 好了,就折腾到这里了。目前不太需要的东东就不花费力气了。