【问题标题】:Inspect environment variables of a process from Visual Studio从 Visual Studio 检查进程的环境变量
【发布时间】:2021-10-05 23:31:12
【问题描述】:

在 Visual Studio 中,我想检查从它启动的进程的环境变量,例如在 Process Hacker 或 Process Explorer 中。 VS 提供了非常高级的调试功能,可能我遗漏了什么。

背景。

我有一个由 Visual Studio 2019 构建的 C++ 程序。

如果从 Visual Studio IDE 启动它会失败,但如果从 .cmd 脚本启动它会成功运行。 Cmd 脚本设置额外的环境变量,我想通过从项目属性设置这些变量来模拟这种行为 - >调试。我以前做过,一切正常。

现在发生了一些变化,我想弄清楚是什么。

我们公司的安全政策不允许我使用 Process Hacker 和 ProcessExplorer。如果我尝试启动这些程序中的任何一个,它们都会被安装在我 PC 上的公司软件终止。

另外,我想避免添加会检索这些变量并打印它们的代码。

那么,在 Visual Studio 中,有什么东西可以为我显示环境变量吗?

更新问题确实出在环境变量中。具体来说,Visual Studio 设置它们。如果我从系统控制面板全局设置所需的变量,则不会崩溃。但是,如果我通过 Visual Studio 的项目属性设置它们,就会发生一些奇怪的事情。

【问题讨论】:

  • system("env") 或者只是从你的程序中读取环境?
  • env 适用于 Linux。而且我想避免添加这样的调试代码。
  • 进程是否依赖于当前工作目录,例如相对文件路径?
  • @RichardCritten,是的,但是 VS 从与该 cmd 脚本相同的目录启动它。
  • 你为什么突然得出问题是由于不同的环境变量造成的结论?即使这是原因,您仍然需要修改程序以报告它收到的环境变量,以便比较从“.cmd”脚本和 Visual Studio 接收的环境变量。失败应该提供足够的信息来调试这个问题。因为它显然不是我要解决的第一件事。

标签: c++ environment-variables visual-studio-2019 visual-studio-debugging


【解决方案1】:

在调试模式下,您可以保存进程转储(Debug - Save Dump As - Minidump with heap),然后使用十六进制编辑器(如果文件很小,则使用记事本)检查此 .dmp 文件,搜索环境变量名称.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-12-25
    • 2020-12-02
    • 1970-01-01
    • 2019-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-02
    相关资源
    最近更新 更多