Почему я не могу распечатать переменные среды в gdb?

#include <unistd.h>
#include <stdio.h>

extern char **environ;
int main(int argc, char *argv[]) { 
  int i = 0;
  while(environ[i]) {
    printf("%s\n", environ[i++]);
  }
  return 0;
}

Вот мои операции:

(gdb) n
8       printf("%s\n", environ[i++]);
(gdb) p environ[i]
Cannot access memory at address 0x0
(gdb) n
LOGNAME=root
7     while(environ[i]) {

Как видите, printf может распечатать Environment [i] , но p Environment [i] дает мне Невозможно получить доступ к памяти по адресу 0x0 , почему?

8
задан AProgrammer 1 June 2011 в 15:24
поделиться