GBase 8a
运维管理
文章
GBase8a基于GDB调试
发表于2026-01-09 15:06:5743次浏览3个评论
使用gdb调试过程中,对于批量的数据处理和检测,尤其是来自内存的信息时,手动调试需要不停的重复操作:查看地址内容->取地址内容->查看新的地址内容……,当需要做成百上千的重复操作时,这时候,使用gdb的自定义脚本会带来很大的便捷。
外部编辑脚本文档:name.gdb
define my_print
if $argc != 2
help my_print
else
set $list = $arg0
set $span = $arg1
set $prev = ((tcmalloc::Span*)$list)->prev
set $count = 0
while ($prev != $list && $prev != $span)
p *(tcmalloc::Span*)$prev
set $prev = ((tcmalloc::Span*)$list)->prev
set $count++
end
printf "Search over, %d\n", $count
end
end
document my_print
my_print [list] [span]
end
其中取值时常用的通用变量:
$_ : 上一个取址命令的源地址
$__ : 上一个取址命令的地址内容
然后通过在gdb命令行下执行
评论
登录后才可以发表评论
热门帖子
- 12025-12-01浏览数:182764
- 22023-05-09浏览数:25062
- 42023-09-25浏览数:18526
- 52020-05-11浏览数:17529