You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在gdb中打印出完整的全部argv参数值

只打印出第一个参数的原因

argv在C/C++的main函数中是char **类型,本质是指向字符串数组首元素的二级指针:

  • argv存储的是第一个字符串(程序自身路径)的指针的地址
  • *argv是对首元素的解引用,拿到的就是第一个字符串的首地址,自然只会输出第一个参数的值,不会包含后续参数
打印所有argv参数的方法

注意操作需要断点停在main函数内部,上下文可读取到argc、argv变量时生效

  • 方法1:手动按索引打印,适合参数少的场景
    直接指定索引打印对应参数即可,示例命令:
    print argv[0]
    print argv[1]
    print argv[2]
    print argv[3]
    
  • 方法2:一次性批量打印所有参数
    gdb支持用@操作符指定连续打印的元素个数,左边填起始地址,右边填要打印的元素数量:
    已知当前参数总个数(含程序名)为4时,执行:
    print *argv@4
    
    通用写法可直接调用当前上下文的argc变量,不用手动数参数个数:
    print *argv@argc
    
    执行后会一次性输出从argv[0]到argv[argc-1]的全部参数内容。

内容的提问来源于stack exchange,提问作者marlon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 05:45:08