Enable debug tools on Golang for arm platform (MSan & TSan)
summary
Ports MemorySanitizer and ThreadSanitizer into Go on arm64 by adding required compiler-rt-compatible memory layout, shadow-memory mapping and small assembly/runtime APIs, plus cgo interception so uninitialized C buffers aren’t misreported. Implements exact and approximate shadow propagation for arithmetic, supports the sanitizer hooks in the Go runtime, and lands upstream. Reported runtime cost is about 20% overhead for MSan and 15% overhead for TSan; the tools detect UUMs and races in real Go+C workloads.
AI-written summary · about
chapters (7)
- 0:00Introduction to project
- 1:04Memory sanitizer overview
- 5:50MSan implementation in Go
- 12:04Thread sanitizer overview
- 15:32TSan implementation details
- 18:54Demo and usage
- 21:41Summary and Q&A
related talks
50mAddressSanitizer/ThreadSanitizer for Linux Kernel
59mSanitizing the Linux Kernel — On KASAN and other Dynamic Bug-finding Tools
45mPerf tools updates and beyond
01h 29mModern Linux C++ Debugging Tools - Under the Covers
37mA New Secure Container Solution on Arm Platform: gVisor
45mGCC's -fanalyzer and the Linux kernel
58m“Debugging Linux C++”
44mWhere are we on security features?
