如何在gdb中运行携带-t参数的可执行程序
错误原因说明
- 直接执行
gdb ./program -t报错,是因为gdb会优先将以-开头的内容识别为自身的启动参数,-t和gdb内置的-tui、-tty参数前缀重合,触发歧义校验。 gdb --args ./program -t本身语法正确,报找不到文件的常见原因是当前工作目录下不存在./program可执行文件,或是该文件没有可执行权限。你可以先执行ls ./program确认文件存在,再执行chmod +x ./program为文件添加可执行权限后重试。
可行调试方案
方案1:启动gdb时通过--args传参
确认文件状态正常后,执行以下命令:
gdb --args ./program -t
进入gdb交互界面后输入run即可启动带-t参数的程序调试。
方案2:进入gdb后运行时传参
你也可以先启动gdb加载目标程序,运行阶段再传入参数,完全规避参数冲突问题:
- 执行命令启动gdb:
gdb ./program
- 在gdb交互界面执行带参数的run命令:
(gdb) run -t
内容的提问来源于stack exchange,提问作者macarons
相关产品推荐
相关产品推荐

