RE: getenv always return NULL in GDB/DDD
"Luo, Ginger" <[email protected]>
| Newsgroups | gmane.comp.gdb.devel |
|---|---|
| Message-ID | <DM5PR12MB1417482918F9346BD809AC8995F30@DM5PR12MB1417.namprd12.prod.outlook.com> |
Simon, Thanks, It's awesomely working. -----Original Message----- From: Simon Marchi <[email protected]> Sent: Friday, October 26, 2018 10:21 PM To: Luo, Ginger <[email protected]> Cc: [email protected] Subject: Re: getenv always return NULL in GDB/DDD 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