/images/hugo/avatar.png

Go unsafe包的安全使用模式

1. 类型安全 在Go语言中,我们是无法通过常规语法手段穿透Go在类型系统层面对内存数据的保护的: 1 2 3 4 5 6 7 8 9 10 11 12 func main() { a := 0x12345678 fmt.Printf("0x%x\n", a) var p *byte =

Go 网络编程

Go是自带运行时的跨平台编程语言,Go中暴露给语言使用者的TCP Socket接口是建立在操作系统原生TCP Socket接口之上的。由于Go运

Go 调度器

今天我们来学习一些 Go 程序的调试技巧。 1. 调度器状态的查看方法 Go提供了调度器当前状态的查看方法:使用Go运行时环境变量GODEBUG。 1 2 3 4

Go 汇编反汇编

1. 查看Go程序的汇编代码 查看Go程序的汇编代码有多种方法: 使用objdump工具:objdump -S go二进制文件 使用gdb disassemble 使用go tool

Delve 调试Go代码

1. 专业调试工具 bug是表象,要发现内部原因需要利用更多的表象数据去推理,需要收集足够多的“现场数据”。我们可以通过编程语言内置的输出语句(如

expvar

1. expvar 应用运行状态一般以度量数据的形式呈现。通过了解应用关键路径上的度量数据,我们可以确定在某个度量点上应用的性能是符合预期性能指标还是较大偏