GDB中如何保存当前会话?GDB没有直接的命令,但是,GDB可以保存当前会话的命令历史,然后加载的时候,导入命令文件,执行完命令文件中的命令,就可以恢复会话。
保存一个会话,假设调试test,执行 gdb test 进入gdb:
1. set history filename ~/.gdb_history # 设置~/.gdb_history为保存历史命令的文件
2. set history save on # 开始记录命令
... gdb 操作
3. set history save off # 停止记录命令,如果不执行这条命令,命令记录直到quit,包含quit
4. quit # 退出gdb
命令1,2可以放在gdb statup file (~/.gdbinit)文件中,不用每次都输入了;
恢复前一个会话:
gdb -command=~/.gdb_history test # 选项-command 选定保存命令的文件,gdb 会在加载被调试的文件后执行命令文件;
或者,在进入gdb 后,用 source 命令执行命令文件:
source ~/.gdb_history
参考:
1. Debug with GDB, Command Files
2. Debug with GDB, Command Histroy
3. http://stackoverflow.com/questions/3176800/how-can-i-make-gdb-save-the-command-history