2025
程序的编译和链接:gcc、clang、glibc、musl 和 rustc
·
Rust
Cargo
系统总结了使用 gcc、clang、rustc 编译器进行程序的编译和链接过程,以及使用 musl 进行静态链接的方案。
Rust 工具链、项目布局、程序的编译链接和 Cargo 配置
·
Rust
Cargo
介绍使用 rustup 管理 Rust 工具链,Rust 程序的目录布局,编译链接和 Cargo 配置。
Linux 内核的 llvm 编译和 clangd 支持
Gnu
Kernel
Clangd
介绍使用 llvm clang 编译器编译 Linux 内核的过程,内核头文件原理和生成 clangd 语言服务器所需的编译命令 JSON 文件的过程。
Go CGO 程序静态编译链接
·
Cgo
Go
Compile
Gcc
使用 linux bpftrace 进行内核和应用性能分析
Bpftrace
Kernel
Ebpf
Performance
Tool
介绍 bpftrace 工具的使用方式、局限性和问题。
使用 linux perf 进行内核和应用性能分析
Perf
Kernel
Performance
Tool
介绍 perf 工具的使用方式、局限性和问题。
2023
Linux 函数调用栈展开
·
Elf
Dwarf
Debug
介绍 Linux 函数调用栈生成和展开(stack unwinding)机制。
向 ELF 二进制添加元数据信息
·
Elf
介绍向 ELF 文件中添加自定义数据的方法。
readelf
·
Elf
Debug
Tool
readelf 是显示 ELF 二进制文件(可执行程序或动态库等)中各 Section 内容的重要工具。
显示符号表 Sections,如 .dnysym 和 .symtab 中的符号名称和地址; 显示 DWARF 格式的 Sections,如各种 .debug_xx,.eh_frame 等; 显示查找 debuginfo 文件所需的 .gnu_debuglink 和 .note.gnu.build-id ;
objdump
·
Elf
Debug
Tool
objdump 是 ELF 文件查看和反汇编工具。
ELF 符号表和 DWARF 调试符号表
·
Elf
Debuginfo
Dwarf
介绍 Linux ELF 二进制文件的符号表和调试符号表(.debug_XX)生成、管理机制。