Re: getenv always return NULL in GDB/DDD

Simon Marchi <[email protected]>
Newsgroups gmane.comp.gdb.devel
Message-ID <[email protected]>
On 2018-10-26 05:35, Luo, Ginger wrote:
> Hello, GDB experts
> 
> 
> I try to call getenv in my C code, this can return correct env string
> in terminal, while it returns NULL in GDB/DDD.
> 
> 
> #include <stdlib.h>
> 
> #include <string.h>
> 
> #include <stdio.h>
> 
> void main() {
>   char * a = getenv("ANCHOR"); // ANCHOR exists in the terminal
>   if (strlen(a)>0)
>     printf("%s\n", a);
> }
> 
> 
> The GDB/DDD is started from the same terminal. Even I "show
> environment", this env exists.
> 
> Anyone any idea?
> 
> OS/Tools version info: RHEL Linux hostname1 2.6.32-754.3.5.el6.x86_64
> #1 SMP Thu Aug 9 11:56:22 EDT 2018 x86_64 GNU/Linux
> 
> GNU gdb (GDB) 7.12
> 
> gcc (GCC) 6.3.0
> SHELL is tcsh, DDD/GDB is using default settings.
> 
> Let me know if you need any further info.

I don't see off-hand why this would happen.  One thing to try would be 
"set startup-with-shell off".  If, for some reason, your shell (through 
which the debugged program is ran) messes up with the environment, this 
would bypass it entirely.

Otherwise, as usual, I would recommend trying the latest version of GDB. 
  I don't have anything specific in mind that changed recently, but it's 
good to try.

Simon
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.