@@ -33,8 +33,35 @@ enable_logging = true
3333log_level = " trace"
3434
3535[dwarf ]
36- # DWARF 调试信息搜索路径(用于未来的 --debug-file 自动发现功能)
37- # 目前未实现,为未来使用保留
36+ # DWARF 调试信息搜索路径(用于 .gnu_debuglink 文件)
37+ #
38+ # 当二进制文件使用 .gnu_debuglink 引用独立的调试文件时,
39+ # GhostScope 会在这些路径中搜索调试文件。
40+ #
41+ # 搜索顺序(优先级从高到低):
42+ # 1. 绝对路径(如果 .gnu_debuglink 包含绝对路径 - 罕见)
43+ # 2. 用户配置的 search_paths + basename(此处配置)
44+ # 3. 二进制文件所在目录 + basename
45+ # 4. 二进制文件所在目录的 .debug 子目录 + basename
46+ #
47+ # 对于每个用户配置的路径,会检查两种位置:
48+ # - <路径>/debug_文件名
49+ # - <路径>/.debug/debug_文件名
50+ #
51+ # 特性:
52+ # - 主目录展开:"~/" 会被替换为你的主目录
53+ # - 自动去除重复路径以避免冗余检查
54+ # - 按顺序尝试路径,直到找到匹配的调试文件
55+ #
56+ # 常用搜索路径:
57+ # - 系统调试符号:"/usr/lib/debug"(用于已安装的调试包)
58+ # - 本地调试符号:"/usr/local/lib/debug"
59+ # - 用户特定: "~/.local/lib/debug"
60+ # - 自定义构建输出:"/path/to/build/debug"
61+ #
62+ # 注意:.gnu_debuglink 通常使用 basename(相对路径),但也支持绝对路径。
63+ # 如需使用系统范围的调试目录(如 /usr/lib/debug),请添加到 search_paths。
64+ #
3865# 默认值:["/usr/lib/debug", "/usr/local/lib/debug"]
3966search_paths = [
4067 " /usr/lib/debug" ,
@@ -96,3 +123,86 @@ output_dir = "."
96123# 自动生成的实时日志文件的默认文件名前缀
97124# 默认值:"ghostscope_session"
98125filename_prefix = " ghostscope_session"
126+
127+ [ebpf ]
128+ # RingBuf 映射大小(字节,必须是 2 的幂)
129+ # 控制用于从内核向用户空间传输跟踪事件的环形缓冲区大小。
130+ # 较大的尺寸允许缓冲更多事件,但会消耗更多内核内存。
131+ # 有效范围:4096 (4KB) 到 16777216 (16MB)
132+ # 推荐值:
133+ # - 低频追踪:131072 (128KB)
134+ # - 中频追踪:262144 (256KB)
135+ # - 高频追踪:524288 (512KB) 或 1048576 (1MB)
136+ # 默认值:262144 (256KB)
137+ ringbuf_size = 262144
138+
139+ # ASLR 地址转换的最大 (pid, module) 偏移条目数
140+ # 此映射存储每个进程中每个已加载模块的运行时地址偏移。
141+ # 每个条目存储 text/rodata/data/bss 段的偏移量。
142+ # 有效范围:64 到 65536
143+ # 推荐值:
144+ # - 单进程:1024
145+ # - 多进程:4096
146+ # - 系统范围追踪:8192 或 16384
147+ # 默认值:4096
148+ proc_module_offsets_max_entries = 4096
149+
150+ # PerfEventArray 页数(每个 CPU 的 perf 缓冲区页数)
151+ # 仅在选择 PerfEventArray 时使用(内核 < 5.8 或 force_perf_event_array=true 时)
152+ # 必须是 2 的幂。大多数系统上每页为 4KB。
153+ # 有效范围:1 到 512 页
154+ # 推荐值:
155+ # - 低频追踪:8 页 (每 CPU 32KB)
156+ # - 中频追踪:32 页 (每 CPU 128KB)
157+ # - 高频追踪:64 页 (每 CPU 256KB)
158+ # 默认值:32 (每 CPU 128KB)
159+ perf_page_count = 32
160+
161+ # 强制使用 PerfEventArray 而不是 RingBuf(仅用于测试)
162+ # 警告:仅用于测试目的。正常情况下系统会自动检测内核能力,
163+ # 并使用 RingBuf(内核 >= 5.8)或回退到 PerfEventArray。
164+ # 设置为 true 可在支持 RingBuf 的内核上强制使用 PerfEventArray。
165+ # 默认值:false
166+ force_perf_event_array = false
167+
168+ # 源代码路径配置
169+ # 当 DWARF 调试信息中包含的编译时路径与运行时路径不同时,
170+ # 使用这些设置帮助 ghostscope 定位实际的源文件。
171+
172+ [source ]
173+ # 路径替换规则(首先应用,优先级最高)
174+ # 将编译时路径前缀替换为运行时路径前缀。
175+ # 适用于源代码在不同机器上编译或移动到新位置的情况。
176+ #
177+ # 使用场景示例:
178+ # - 在 CI 服务器上编译:/home/build/project -> /home/user/work/project
179+ # - 内核源码移动:/usr/src/linux-5.15 -> /home/user/kernel/linux-5.15
180+ # - 交叉编译:/buildroot/arm/src -> /local/embedded/src
181+ #
182+ # 格式:数组,包含 { from = "编译路径前缀", to = "运行时路径前缀" }
183+ substitutions = [
184+ # { from = "/home/build/myproject", to = "/home/user/work/myproject" },
185+ # { from = "/usr/src/linux", to = "/home/user/kernel/linux" },
186+ ]
187+
188+ # 附加搜索目录(替换失败时的回退方案)
189+ # 当通过替换无法找到源文件时,ghostscope 将在这些目录中
190+ # 按文件名(basename 匹配)进行搜索。
191+ # 类似于 GDB 的 "directory" 命令。
192+ #
193+ # 格式:目录路径数组
194+ search_dirs = [
195+ # "/home/user/sources",
196+ # "/opt/local/src",
197+ ]
198+
199+ # 运行时配置:
200+ # 你也可以使用 'srcpath' 命令交互式配置源路径:
201+ # srcpath - 显示当前配置
202+ # srcpath map <from> <to> - 添加路径替换规则
203+ # srcpath add <directory> - 添加搜索目录
204+ # srcpath remove <path> - 移除规则
205+ # srcpath clear - 清除所有运行时规则
206+ # srcpath reset - 重置为配置文件规则
207+ #
208+ # 运行时规则优先于配置文件规则,且不会持久化保存。
0 commit comments