You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GDB中C语言右移表达式计算结果异常的问题咨询

GDB中C语言右移表达式计算结果异常的问题咨询

最近我在openEuler环境下用GDB调试时碰到了一个费解的问题,想请教下各位大佬:

我在GDB里执行右移表达式的打印命令,结果和预期完全不一样:

(gdb_openEuler) p -9 >> 3
$1 = -1

我使用的GDB版本信息如下:

GNU gdb (GDB) openEuler 14.1-3.oe2409
Copyright (C) 2023 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later

按照C语言的运算逻辑,-9 >> 3的结果应该是-2才对。而且我在同一个环境下写了个简单的测试程序验证:

int main() {
    printf("%d\n", -9 >> 3);
}

运行这个程序确实输出了预期的-2。

更奇怪的是,我在Ubuntu环境的另一个GDB(版本为GNU gdb (Ubuntu 12.1-0ubuntu1))里执行同样的表达式,得到的结果也是正确的-2。

有没有大佬能帮忙解释下openEuler这个GDB版本里为什么会出现这个计算错误呀?

备注:内容来源于stack exchange,提问作者Oscar Hua

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.13 17:34:40