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

如何在LLDB中查看未自行设置的环境变量?

在LLDB中查看运行进程的全部环境变量

要查看运行中进程实际可用的所有环境变量(包括启动时继承和运行时修改的),可以通过以下两种常用方法:

方法一:直接访问全局变量environ

绝大多数C/C++程序会暴露全局变量environ,它是一个指向环境变量字符串数组的指针,步骤如下:

  1. 先暂停目标进程(如果进程在运行,执行 process interrupt)

  2. 执行命令获取environ的地址并打印全部环境变量:

    expression (char**)environ
    memory read --format s --count 100 $
    

    其中--count 100可以根据实际情况调整数值,确保覆盖所有环境变量;$表示引用上一条命令的输出结果。

    也可以用一行命令直接循环打印:

    expression for (int i=0; environ[i] != NULL; i++) { printf("%s\n", environ[i]); }
    

方法二:通过进程辅助向量(Auxiliary Vector)查找

如果目标进程没有暴露environ变量(比如某些特殊编译的程序),可以通过读取进程的辅助向量找到环境变量的起始地址:

  1. 暂停进程后,执行命令查找AT_ENVP条目:
    process load
    target modules lookup -s __auxv
    
  2. 根据输出找到AT_ENVP对应的地址,再用memory read命令以字符串格式读取该地址指向的数组,操作逻辑和方法一类似。

注意:settings show target.env-vars仅显示LLDB为进程启动预设的环境变量配置,和进程实际运行时的环境变量不是同一个概念,因此无法反映进程当前的真实环境状态。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 17:55:30