GDB或delve调试Go程序查看变量显示<optimized out>解决办法

本文详细探讨了如何通过gdb和delve调试工具分析`test.go`中的内存情况,展示了如何使用gobuild编译并设置断点,以及在GDB和Delve中查看变量值。关键词包括:gdb、delve、内存调试、main函数、fmt.Println。
编译程序的时候使用如下命令行:
go build -o main -gcflags "all=-N -l" main.go

如果你没有源码,不能编译,那只能通过汇编查内存了

调试

程序代码test.go

package main
 
import "fmt"
 
func main(){
   
   
  msg := "hello, world"
  fmt.Println(msg)
}

GDB

(gdb) b main.main
Breakpoint 1 at 0x494880: file /root/test.go, line 5.
(gdb) r
Starting program: /root/test 

Breakpoint 1, main.main () at /root/test.go:5
5       func 
#0 tpsocket_event_filelog_to_hub (handler=<optimized out>, buf=0xbe8b5c08, event=10) at storage.c:906 sock = <optimized out> session = 0x0 decrypt_flag = <optimized out> nbuf = <optimized out> __FUNCTION__ = "tpsocket_event_filelog_to_hub" final_file = <optimized out> #1 0xb6b8da2c in tpsocket_event (sock=sock@entry=0xd370e0, event=event@entry=10) at tpsocket_fd.c:107 dummy = {next = 0xbe8b5c08, prev = 0xbe8b5c08} ret = true empty_write = 1 __func__ = "tpsocket_event" #2 0xb6b8eaf6 in tpsocket_data_cb (ufd=0xd371a4, events=<optimized out>) at tpsocket_fd.c:1487 wret = 0 rret = <optimized out> nice = <optimized out> rlen = 0 wlen = 83 wait = <optimized out> sock = 0xd370e0 __func__ = "tpsocket_data_cb" #3 0xb6bba6f2 in uloop_run_events (timeout=<optimized out>) at /home/wuyilun/Desktop/CAMEOS/platform/build_dir/target-arm-sigmastar-linux-uclibcgnueabihf/libubox-2016-07-29/uloop.c:192 stack_cur = {next = 0x0, fd = 0xd371a4, events = 0} events = <optimized out> cur = <optimized out> fd = 0xd371a4 cur = <optimized out> fd = <optimized out> stack_cur = <optimized out> events = <optimized out> #4 uloop_run () at /home/wuyilun/Desktop/CAMEOS/platform/build_dir/target-arm-sigmastar-linux-uclibcgnueabihf/libubox-2016-07-29/uloop.c:543 recursive_calls = 1 tv = {tv_sec = 1268, tv_usec = 765487} #5 0x0001ab0c in main (argc=<optimized out>, argv=<optimized out>) at main.c:388 __FUNCTION__ = "main" final_file = <optimized out> final_file = <optimized out> final_file = <optimized out> final_file = <optimized out> final_file = <optimized out> final_file = <optimized out> final_file = <optimized out> final_file = <optimized out> final_file = <optimized out> final_file = <optimized out> final_file = <optimized out> final_file = <optimized out> final_file = <optimized out> final_file = <optimized out> final_file = <optimized out> final_file = <optimized out> final_file = <optimized out> final_file = <optimized out> final_file = <optimized out> final_file = <optimized out> final_file = <optimized out> final_file = <optimized out> (gdb) #0 tpsocket_event_filelog_to_hub (handler=<optimized out>, buf=0xbe8b5c08, event=10) at storage.c:906 sock = <optimized out> session = 0x0 decrypt_flag = <optimized out> nbuf = <optimized out> __FUNCTION__ = "tpsocket_event_filelog_to_hub" final_file = <optimized out> #1 0xb6b8da2c in tpsocket_event (sock=sock@entry=0xd370e0, event=event@entry=10) at tpsocket_fd.c:107 dummy = {next = 0xbe8b5c08, prev = 0xbe8b5c08} ret = true empty_write = 1 __func__ = "tpsocket_event" #2 0xb6b8eaf6 in tpsocket_data_cb (ufd=0xd371a4, events=<optimized out>) at tpsocket_fd.c:1487 wret = 0 rret = <optimized out> nice = <optimized out> rlen = 0 wlen = 83 wait = <optimized out> sock = 0xd370e0 __func__ = "tpsocket_data_cb" #3 0xb6bba6f2 in uloop_run_events (timeout=<optimized out>) at /home/wuyilun/Desktop/CAMEOS/platform/build_dir/target-arm-sigmastar-linux-uclibcgnueabihf/libubox-2016-07-29/uloop.c:192 stack_cur = {next = 0x0, fd = 0xd371a4, events = 0} events = <optimized out> cur = <optimized out> fd = 0xd371a4 cur = <optimized out> fd = <optimized out> stack_cur = <optimized out> events = <optimized out> #4 uloop_run () at /home/wuyilun/Desktop/CAMEOS/platform/build_dir/target-arm-sigmastar-linux-uclibcgnueabihf/libubox-2016-07-29/uloop.c:543 recursive_calls = 1 tv = {tv_sec = 1268, tv_usec = 765487} #5 0x0001ab0c in main (argc=<optimized out>, argv=<optimized out>) at main.c:388 __FUNCTION__ = "main" final_file = <optimized out> final_file = <optimized out> final_file = <optimized out> final_file = <optimized out> final_file = <optimized out> final_file = <optimized out> final_file = <optimized out> final_file = <optimized out> final_file = <optimized out> final_file = <optimized out> final_file = <optimized out> final_file = <optimized out> final_file = <optimized out> final_file = <optimized out> final_file = <optimized out> final_file = <optimized out> final_file = <optimized out> final_file = <optimized out> final_file = <optimized out> final_file = <optimized out> final_file = <optimized out> final_file = <optimized out> (gdb) 帮我改正。
最新发布
11-03
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值