c++ - GDB 对非指针类型变量使用了错误的地址
问题描述
我正在尝试使用 GDB 服务器(通过 VMware)调试我的管理程序。不幸的是,GDB 为非指针类型变量打印错误的值。
例如,我有 2 个变量声明如下:
WORD fileType;
WORD_PTR pfileType = &fileType;
fileType = 5;
我在分配给 fileType 之后立即放置了一个断点(使用“本机调试”VS Code 插件),并且在 GDB 上我运行了以下命令:
print fileType
0
print *pfileType
5
所以,我打印了地址,很明显 GDB 使用了错误的fileType
变量地址:
print &fileType
(WORD *) 0x64013dc07d66
print pfileType
(WORD_PTR) 0x64013dc07e6e
我试图添加-fvar-tracking
标志(根据这篇文章),但我仍然得到完全相同的输出。这是我用来编译代码的完整标志列表:
-nostdlib \
-c \
-fPIC \
-w \
-fno-stack-protector \
-mno-red-zone \
-nostdinc \
-g3 \
-ggdb \
-fshort-wchar \
-fvar-tracking \
-fno-omit-frame-pointer
任何想法为什么会发生这种情况?也许我做错了什么?
解决方案
推荐阅读
- php - 如何从中间代理调用和获取 API 响应?
- sql-server - 如何在 ssis 中将 dt_date yyyy-mm-dd 转换为 dt_date yyyy/MM/dd?
- java - “hasNextInt()”和“nextInt()”方法的顺序
- google-cloud-platform - 无法通过 cloudbuild 部署到 cloudrun
- python - Python:删除 CSV 中的“中间行”换行符
- python - 如何在我的 for 循环中修复此 AttributeError
- java - 如何为连接器编写单元测试?
- react-native - @React-native-community/react-native-device-info:NativeModule.RNDeviceInfo 为空。要解决此问题,请执行以下步骤: *Run 'react-native link
- php - 如何在搜索页面上删除确认表单重新提交
- azure - 无法在受限 Internet 中创建 Azure 资源组项目