首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >0x%08 0x是什么?

0x%08 0x是什么?
EN

Stack Overflow用户
提问于 2011-02-11 11:05:44
回答 2查看 15.6K关注 0票数 5

最近我在我的XP机顶盒上看到了很多蓝色的屏幕。事实上,我下载了windows的调试工具(X86),并一直在分析崩溃转储。事实上,我已经把转储换成了迷你的,否则我可能每周都要花半天的时间等待着蓝屏完成详细的坠机记录。

几乎无一例外,每个转储都告诉我,蓝屏的原因是内存分配错误或引用错误,而0x%08lx上的内存引用了0x%08lx,不能是%s。

出于好奇,我把"0x%08lx“放入谷歌,发现有相当多的崩溃转储包含了这个奇怪的信息。我是否认为0x%08lx是应该有意义的东西的位置持有者?"%s“,这是结束句”内存不能是%s“的一部分,显然它似乎缺少了一个变量或什么东西。

有人知道这条消息的来源吗?它实际上应该有用吗?认为是什么样的呢?

这不是我一直努力解决的一件大事。奇怪的是,这么多的人会在这么多的垃圾堆中看到这一点,而没有人说:“哦,撞车垃圾堆没有正确地完成这条信息,它应该读.”

我只是好奇是否有人知道这个奇怪的错误消息的目的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-02-11 11:13:16

我相信它只是内存地址的占位符。0x是一个字符串前缀,它将通知用户它是一个十六进制,而%08lx是一个长int (l)转换为十六进制(x)的实际占位符,填充为8个零(08)。

票数 9
EN

Stack Overflow用户

发布于 2011-02-11 11:12:12

0x%08lx%s几乎肯定是C函数斯普林特格式说明符。但是看起来驱动程序开发人员在他们的错误处理代码方面做得很好,就像他们在关键代码中做的一样好,因为您不应该在GUI中看到这些说明符--它们应该被有意义的值所取代。

0x%08lx应该变成类似于"0xE001D4AB“的东西,这是一个十六进制的32位指针值。

%s应该替换为另一个字符串,在本例中是一个描述。有点像

0xE001D4AB上的内存引用了0xE005123F,不能读取

请注意,我合成了这些值。基本上,出现了内核模式访问冲突。希望在微型转储中,您可以看到是哪个模块导致了它,并卸载/更新/任何其他模块。

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4968282

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档