GDB局部变量,为什么变量出现之前就会出现变量

时间:2018-03-01 07:49:05

标签: c gdb

这是一段简单的代码,但是当我尝试在GDB中调试它时遇到了问题; 以下是我的命令行输入:

gdb test
b main
info locals

源代码:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(){
    char *str = "1111 1111\n";
    size_t n =2;
    FILE *outptr = fopen("target.txt","w");
    fwrite(str,strlen(str),1, outptr);
    char *str2 = "22222\n";
    fwrite(str2,strlen(str2),1, outptr);
    char *str3 = "3333\n";
    fwrite(str3,strlen(str3),1, outptr);
    char *str4 = "4444\n";
    fwrite(str4,strlen(str4),1, outptr);
    // char *str2 = "2222\n";
    // fwrite(str2,strlen(str2),3, outptr);
    fclose(outptr);
    return 1;
}

在main的断点处,gdb显示已定义的所有局部变量,但我还没有进入声明。更让我感到困扰的是,似乎变量具有来自无处的非空值。

由于

0 个答案:

没有答案