跳过正文

2025

Rust 编译和链接三方 C/C++ 源码&库
介绍 Rust 程序编译和链接三方 C/C++ 源码或库的方式。
程序的编译和链接:gcc、clang、glibc、musl 和 rustc
·
系统总结了使用 gcc、clang、rustc 编译器进行程序的编译和链接过程,以及使用 musl 进行静态链接的方案。
Rust 工具链、项目布局、程序的编译链接和 Cargo 配置
·
介绍使用 rustup 管理 Rust 工具链,Rust 程序的目录布局,编译链接和 Cargo 配置。
Linux 内核的 llvm 编译和 clangd 支持
介绍使用 llvm clang 编译器编译 Linux 内核的过程,内核头文件原理和生成 clangd 语言服务器所需的编译命令 JSON 文件的过程。
Go CGO 程序静态编译链接
·
使用 linux bpftrace 进行内核和应用性能分析
介绍 bpftrace 工具的使用方式、局限性和问题。
使用 linux perf 进行内核和应用性能分析
介绍 perf 工具的使用方式、局限性和问题。

2023

Linux 函数调用栈展开
·
介绍 Linux 函数调用栈生成和展开(stack unwinding)机制。
向 ELF 二进制添加元数据信息
·
介绍向 ELF 文件中添加自定义数据的方法。
readelf
·
readelf 是显示 ELF 二进制文件(可执行程序或动态库等)中各 Section 内容的重要工具。 显示符号表 Sections,如 .dnysym 和 .symtab 中的符号名称和地址; 显示 DWARF 格式的 Sections,如各种 .debug_xx,.eh_frame 等; 显示查找 debuginfo 文件所需的 .gnu_debuglink 和 .note.gnu.build-id ;
objdump
·
objdump 是 ELF 文件查看和反汇编工具。
ELF 符号表和 DWARF 调试符号表
·
介绍 Linux ELF 二进制文件的符号表和调试符号表(.debug_XX)生成、管理机制。