Radare2在Manjaro 20.2中Tab自动补全触发段错误的问题求助
radare2 Tab补全触发段错误(Manjaro 20.2)
我之前在Arch系发行版上也碰到过类似的radare2补全崩溃问题,结合你的场景,给你几个可行的排查和解决方向:
1. 强制依赖GNU Readline编译
Manjaro默认可能用libedit替代GNU Readline,而radare2的补全功能对Readline的兼容性更友好。你可以尝试重新编译radare2并指定依赖GNU Readline:
- 先安装Readline开发包:
sudo pacman -S readline - 重新编译radare2:
git clone https://github.com/radareorg/radare2.git cd radare2 ./configure --with-readline make clean && make -j$(nproc) sudo make install
2. 临时禁用补全验证问题
如果上面的方法没立刻生效,可以先禁用补全功能,确认崩溃是否由补全模块导致:
r2 -e cfg.completion=0 hello
启动后再尝试Tab操作,如果不再崩溃,说明问题确实出在补全模块,你可以考虑提交bug到radare2仓库,或者等待后续版本修复。
3. 切换到稳定分支编译
有时候主分支的开发版代码可能存在未修复的bug,你可以切换到最新稳定分支再编译:
cd radare2 git checkout stable ./configure --with-readline make clean && make -j$(nproc) sudo make install
4. 分析核心转储定位崩溃点
如果以上方法都无效,你可以通过核心转储来定位具体的崩溃位置,方便后续排查或提交精准的bug报告:
# 触发崩溃后,查看最近的radare2核心转储记录 coredumpctl list r2 # 调试对应进程的转储文件,替换<pid>为记录里的进程ID coredumpctl debug r2 <pid> # 在gdb中输入以下命令查看堆栈跟踪 bt
把堆栈跟踪信息提交到radare2的GitHub Issues,开发者能更快定位问题根源。
另外,你也可以尝试安装Manjaro官方仓库的radare2版本,对比自编译版本是否存在同样问题:
sudo pacman -S radare2
内容的提问来源于stack exchange,提问作者Abhay Bhat
相关产品推荐
相关产品推荐

