ITPub博客

首页 > 数据库 > Oracle > [20240922]gdb与rlwrap使用问题.txt

[20240922]gdb与rlwrap使用问题.txt

原创 Oracle 作者:lfree 时间:2024-09-25 21:06:06 0 删除 编辑

[20240922]gdb与rlwrap使用问题.txt

--//我使用centos 7.3版本遇到的问题,gdb与rlwrap无法配合使用,一些按键失效。

--//我定义别名如下:

$ alias rlgdb
alias rlgdb='$RLWRAP -s 9999 -c -r -i /usr/bin/gdb'

--//我仔细查看发现gdb实际上链接了readline库。

$ ldd $(which gdb)
        linux-vdso.so.1 =>  (0x00007ffd6679d000)
        libreadline.so.6 => /lib64/libreadline.so.6 (0x00007f0a3e767000)
        libselinux.so.1 => /lib64/libselinux.so.1 (0x00007f0a3e53f000)
        libncurses.so.5 => /lib64/libncurses.so.5 (0x00007f0a3e318000)
        libtinfo.so.5 => /lib64/libtinfo.so.5 (0x00007f0a3e0ee000)
        libz.so.1 => /lib64/libz.so.1 (0x00007f0a3ded7000)
        libm.so.6 => /lib64/libm.so.6 (0x00007f0a3dbd5000)
        libdl.so.2 => /lib64/libdl.so.2 (0x00007f0a3d9d1000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f0a3d7b4000)
        libutil.so.1 => /lib64/libutil.so.1 (0x00007f0a3d5b1000)
        libpython2.7.so.1.0 => /lib64/libpython2.7.so.1.0 (0x00007f0a3d1e6000)
        libexpat.so.1 => /u01/app/oracle/product/21.0.0/dbhome_1/lib/libexpat.so.1 (0x00007f0a3cfbb000)
        liblzma.so.5 => /lib64/liblzma.so.5 (0x00007f0a3cd95000)
        libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f0a3cb7f000)
        libc.so.6 => /lib64/libc.so.6 (0x00007f0a3c7bd000)
        libpcre.so.1 => /lib64/libpcre.so.1 (0x00007f0a3c55c000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f0a3e9d6000)

--//好像旧版本不包括readline库,这样导致它与rlwrap配合无效。

$ cat  ~/.gdb_history
y
n
y
--//文件.gdb_history就仅仅记录3行,实际上如果我没有输入n,仅仅记录1行,如果上1个命令与下一个相同,rlwrap仅仅记录1行。
--//不像.sqlplus_history记录许多打入的历史命令。
--//导致许多按键"失效",不知道像这类情况rlwrap有什么好的方法解决。

--//我尝试在如下目录建立gdb文件。
# ls -l /usr/share/rlwrap/completions/gdb
-rw-r--r--. 1 root root 1500 2024-09-22 16:38:49 /usr/share/rlwrap/completions/gdb

# grep ^b  /usr/share/rlwrap/completions/gdb
backtrace
bookmark
break
break-range
bt

--//这样我打入的命令,输入前几个字符,按<F8>可以直接调出。因为保存失效,历史记录.gdb_history没有记录,即使我尝试加入历史
--//记录文件,按<F8>一样无效。

--//注:<F8>定义在/etc/inputrc文件。

# grep -i 'f8' /etc/inputrc
"\e[19~": history-search-backward      # F8

--//实际上出现这样情况,还不如没有以前的情况好用,指gdb不包括readline库。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/267265/viewspace-3029349/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
熟悉oracle相关技术,擅长sql优化,rman备份与恢复,熟悉linux shell编程。

注册时间:2008-01-03

  • 博文量
    4006
  • 访问量
    7970027