gpt4 book ai didi

c - 为什么 gdb 显示错误的变量值?

转载 作者:太空狗 更新时间:2023-10-29 15:26:51 25 4
gpt4 key购买 nike

<分区>

我有一个简单的程序:

#include <stdio.h>

void func(int i) {
i = 1;
printf("%d\n", i);
}

int main(int argc, char *argv[]){
func(0);
return 0;
}

现在:

gcc test.c -g -o test

gdb test
(gdb) b main
Breakpoint 1 at 0x400543: file test.c, line 9.
(gdb) run
Starting program: /tmp/test

Breakpoint 1, main (argc=1, argv=0x7fffffffe458) at test.c:9
9 func(0);
(gdb) s
func (i=0) at test.c:4
4 i =1;
(gdb) p i
$1 = 0
(gdb) n
5 printf("%d\n", i);
(gdb) p i
$2 = 0
(gdb)

程序运行正常,显示“1”,但为什么 gdb 显示“0”值?

Debian 喘不过气来。

我在 gcc-4.7、gcc-4.6 上观察到。在 gcc-4.4 上一切正常。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com