[20241107]建立完善ext_kglob.sh脚本.txt

来源:这里教程网 时间:2026-03-03 20:52:47 作者:

[20241107]建立完善ext_kglob.sh脚本.txt --//一些环境的gdb版本太旧,不支持管道操作,将两者结合起来写成一个脚本。 $ cat ext_kglob.sh #/bin/bash # extrace object string from object handle address # arg1 = address arg2 = offset arg3 = p or other p=pipe pipe=${3:-p} offset=${2:-1c8} if [ "$pipe" == "p" ] ; then     echo x/s 0x${1}+0x${offset} | gdb -q -p $(pgrep -f ora_dbw0_${ORACLE_SID}) | grep '^(gdb)' else     echo -e "x/s 0x${1}+0x${offset}\nquit\n" >| /tmp/ext_kglob.tmp     gdb -q -batch -p $(pgrep -f ora_dbw0_${ORACLE_SID}) -x /tmp/ext_kglob.tmp | grep  "^0x" | grep -v "0x0" fi --//简单测试看看: SYS@book> @ sharepool/shp4p 80baj2c2ur47u 0 SYS@book> @ pr ============================== HANDLE_TYPE                   : parent handle address KGLHDADR                      : 000000006E6CD0D8 KGLHDPAR                      : 000000006E6CD0D8 C40                           : select * from dept where deptno=20 KGLHDLMD                      : 0 KGLHDPMD                      : 0 KGLHDIVC                      : 0 KGLOBHD0                      : 000000006FE20100 KGLOBHD6                      : 00 KGLOBHS0                      : 4064 KGLOBHS6                      : 0 KGLOBT16                      : 0 N0_6_16                       : 4064 N20                           : 4064 KGLNAHSH                      : 95129850 KGLOBT03                      : 80baj2c2ur47u KGLOBT09                      : 65535 PL/SQL procedure successfully completed. $ ext_kglob.sh 000000006E6CD0D8 (gdb) 0x6e6cd2a0:       "select * from dept where deptno=20" (gdb) quit $ ext_kglob.sh 000000006E6CD0D8 '' 0 0x6e6cd2a0:     "select * from dept where deptno=20"

相关推荐