jingham added a comment. In D76470#1934146 <https://reviews.llvm.org/D76470#1934146>, @friss wrote:
> In D76470#1933910 <https://reviews.llvm.org/D76470#1933910>, @jingham wrote: > > > Is there any command-based way to see the entire environment that a process > > will get when it launches? By populating target.env-vars with the > > inherited environment there was a way to mostly do that, but I don't see > > that anymore. It seems a shame not to be able to see that... > > > No, there is no way to do this, but it's not really a regression. If you do > `settings show target.env-vars` today before running then you won't see what > is going to be passed. Only after the first run will it be populated. This > was a surprise to me and I find it highly inconsistent. Maybe I can add > another property that would get updated with the computed environment. Do we > have anything like read-only properties? No, but I don't think I'd do this with a property anyway. You are asking the target to compute the result of the various settings that affect the environment of a process it might launch. That sounds more like the result of a command ("target show-environment" or something like that.) If we knew how to get the environment from a running process, the same command could show the current environment in a running process, which would sometimes be handy. I agree the behavior before was pretty unhelpful, so I don't think you need to add a new command to access this in this change set. But we should put it on our list of things to do. > > >> Also, it does seem weird to me that unset-env-vars would override setting a >> target.env-var explicitly. What I'm likely to do is say: environment >> variable 'PUT_HERE_TO_ANNOY_JIM' is always getting set, and I don't want it >> to be when I'm debugging, so I put: >> >> settings set target.unset-env-vars PUT_HERE_TO_ANNOY_JIM >> >> in my .lldbinit and then after a couple month of debugging happiness, I >> forget that I put it there. >> >> Then for some reason in a debugging session I want to set it. So I do: >> >> (lldb) env PUT_HERE_TO_ANNOY_JIM="Okay, This One Time..." >> >> But then when I run my process, it doesn't get set. Now I have to go back >> and remember that I had done the unset thing... >> >> It really seems to me the automatic unsets should happen before the explicit >> sets. And given the only way you get anything before the automatic sets is >> the inherited environment, it doesn't make sense to me to apply the unsets >> if inherit is off. > > This is pretty far-fetched to me, but I also don't really care. I'm fine with > having `env-vars` override `unset-env-vars`. If a variable FOO exists in lldb's environment with the value BAR, and then I have done `env FOO=BAZ`, when the process launches, FOO will be BAZ, not BAR. So it would be inconsistent to have env-vars override the values of lldb environment variables, but not the entries in unset-env-vars. So I do think that way makes more sense. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D76470/new/ https://reviews.llvm.org/D76470 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits