【发布时间】: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