gdb的user-define command

搜索: user-defined例子。

# save this file in ~/.gdb or some where easy to find.
# then in ~/.gdbinit add the following line...
# source ~/.gdb/osip_gdb_util
#
# help p_osip_list_size
# help p_osip_list

define p_osip_list_size
        set $list = ($arg0)
        set $list_size = 0
        set $node = $list->node
        while ($node != 0)
                set $list_size++
                set $node = (__node_t *)$node->next
        end

        printf "List size: %d", $list_size
end
document p_osip_list_size
p_osip_list_size <list>: Print size of osip list
end

define p_osip_list
        set $list = ($arg0)
        set $list_size = 0
        set $node = $list->node
        while ($node != 0)
                set $list_size++
                print $node->element
                set $node = (__node_t *)$node->next
        end
end
document p_osip_list
p_osip_list <list>: Prints the content of the list.
To see the value, cast the information back to the original form.
For example: *(osip_generic_param_t)$1
end
时间: 2024-10-15 21:43:43

gdb的user-define command的相关文章

J-Link GDB Server Command

J-Link GDB Server - SEGGER Hilden, Germany – September 15th, 2011 – SEGGER Microcontroller today announced the freeavailability of the J-Link GDB-Server. As the GNU-tool-chain gains ground in terms of performance and usability, GDB continues to grow

gdb 调试学习

gdb 是unix/linux 系统下的程序调试工具,和IDE(如VS, Eclipse等)的图形化调试工具相比,gdb在断点,跟踪显示方面有着不足,但是它在某些方面比图形化调试工具更加丰富的功能. gdb 调试前提 如果希望程序能够被gdb调试,则需要在编译程序时候,指定 -g 选项. gdb 的调试和程序的release 优化一样,也存在着级别,可以手动设置.默认的gdb级别为2, 当把gdb的调试级别设置为3的时候,可以在gdb调试过程中 macro expand/exp  对程序中的宏定

gdb help all 帮助信息

Command class: aliases ni -- Step one instruction rc -- Continue program being debugged but run it in reverse rni -- Step backward one instruction rsi -- Step backward exactly one instruction si -- Step one instruction exactly stepping -- Specify sin

Go语言gdb调试踩坑

整个是一个docker环境 docker版本: 1.12.1,镜像是我自己做的基于ubuntu:14.04.05. 容器操作系统版本: Ubuntu 14.04.5 LTS go版本: 1.6.3 在gdb中执行run命令出错! 错误输出: warning:Error disabling address space randomization: Operation not permitted 环境:docker 解决办法: warning:Error disabling address spac

GDB调试之二栈溢出

linux下应用程序中经常会发生段错误段错误基本上是由于访问非法内存所导致的如栈溢出.数组越界访问.malloc/free内存所引起的.在linux下发生段错误时会生成core dump核心转储文件里面记录了发生段错误时的函数调用关系. ubuntu14.04下默认发生段错误时并不产生核心转储文件需要额外的配置通过命令 ulimit -c查看是否允许的core dump文件大小.如果只是临时需要用到可以使用命令ulimit -c unlimited临时打开则发生段错误时会在当前目录下产生core

Android gdb so

gdb debug an android application 1.gdb 要有gdbserver 一般模拟器默认装有gdbserver,如2.3.3的模拟器,看一下有没有: D:\Developer\sdk\platform-tools>adb shell ls -l /system/bin/gdb*-rwxr-xr-x root shell 5664 2010-07-01 05:03 gdbjithelpe-rwxr-xr-x root shell 151868 2010-05-11 09

GDB 多进程调试

启动: $gdb <file>  || $gdb 然后(gdb)file <file> 运行: (gdb)run <该程序本身的命令行参数> 查看代码: (gdb)list  简写为 (gdb)l 技巧(gdb)list 1,20   //查看1到20行的代码   使用断点: 建立断点 (gdb)break  //可以简写为(gdb)b (gdb)b <function>   || <file>:<function>  //这种是为还

[Linux]gdb调试

1 [email protected]:~/CodeLearn/HelloWorld/src$ g++ -g main.cpp 2 [email protected]:~/CodeLearn/HelloWorld/src$ ./a.out 3 Hello world!10 4 [email protected]:~/CodeLearn/HelloWorld/src$ gdb a.out 5 GNU gdb (Ubuntu/Linaro 7.4-2012.04-0ubuntu2.1) 7.4-20

ios下gdb调试初探

一.调试平台搭建 1.GNU Debugger.首先安装ios下的gdb调试器,添加源:cydia.radare.org .搜索 GNU Debugger,安装之.(有些源的GDB好像不能用,这个测试没问题) 2.openSSH.这个应该都会装,没装过的参考,http://www.cnblogs.com/jailbreaker/p/4142609.html 3.adv-cmds.添加源:apt.saurik.com(这个应该是默认源里的一个). 二.附加步骤 1.首先在ios中打开你要调试的ap

GDB调试手册[转]

Linux 包含了一个叫gdb 的GNU 调试程序.gdb 是一个用来调试C和C++程序的强力调试器.它使你能在程序运行时观察程序的内部结构和内存的使用情况.以下是 gdb 所提供的一些功能:它使你能监视你程序中变量的值.它使你能设置断点以使程序在指定的代码行上停止执行.它使你能一行行的执行你的代码.在命令行上键入gdb并按回车键就可以运行gdb 了.(Windows需要安装MinGW或者CygWin并且需要配置环境变量才可以使用) GDB 命令行参数 启动 GDB: l  gdb execut