0x%08lx是什么?

发布于 2024-10-16 17:18:26 字数 513 浏览 5 评论 0原文

最近我在工作中 XP 机器上出现了很多蓝屏。事实上,我下载了 Windows(x86) 的调试工具并一直在分析故障转储。事实上,我已经将转储更改为仅迷你转储,否则我可能每周都会花费半个工作日来等待蓝屏完成记录详细的崩溃日志。

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

出于好奇,我在 Google 中输入了“0x%08lx”,发现相当多的故障转储都包含这个奇怪的消息。我是否可以认为 0x%08lx 是一个占位符,代表一些应该有意义的东西? “%s”是结论句“内存不可能是%s”的一部分,看起来肯定缺少变量或其他东西。

有谁知道这条消息的出处吗?它真的应该有用吗?它应该是什么样子?

这并不是什么大事,我一直在努力解决它。奇怪的是,这么多人应该在这么多故障转储中看到这一点,却没有人说:“哦,故障转储没有正确完成该消息,它应该读取......”

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

I've been getting a lot of blue screens on my XP box at work recently. So many in fact that I downloaded debugging tools for windows(x86) and have been analyzing the crash dumps. So many in fact that I've changed the dumps to mini only or else I would probably end up tanking half a work day each week just waiting for the blue screen to finish recording the detailed crash log.

Almost without exception every dump tells me that the cause of the blue screen is some kind of memory misallocation or misreference and the memory at 0x%08lx referenced 0x%08lx and could not be %s.

Out of idle curiosity I put "0x%08lx" into Google and found that quite a few crash dumps include this bizarre message. Am I to take it that 0x%08lx is a place holder for something that should be meaningful? "%s" which is part of the concluding sentence "The memory could not be %s" definitely looks like it's missing a variable or something.

Does anyone know the provenance of this message? Is it actually supposed to be useful and what is it supposed to look like?

It's not a major thing I have always worked around it. It's just strange that so many people should see this in so many crash dumps and nobody ever says: "Oh the crash dump didn't complete that message properly it's supposed to read..."

I'm just curious as to whether anyone knows the purpose of this strange error message artefact.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

谈下烟灰 2024-10-23 17:18:26

0x%08lx%s 几乎肯定是 C 函数 sprintf 的格式说明符。但看起来驱动程序开发人员在错误处理代码中所做的工作与在关键代码中所做的一样好,因为您永远不应该在 GUI 中看到这些说明符 - 它们应该被替换为有意义的值。

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

%s 应替换为另一个字符串,在本例中为描述。像这样的东西

引用0xE001D4AB处的内存
0xE005123F并且无法读取

请注意,这些值是我编造的。基本上,发生了内核模式访问冲突。希望在迷你转储中您可以看到哪个模块导致了它并卸载/更新/无论它。

0x%08lx and %s are almost certainly format specifiers for the C function sprintf. But looks like the driver developers did as good a job in their error handling code as they did in the critical code, as you should never see these specifiers in the GUI -- they should be replaced with meaningful values.

0x%08lx should turn into something like "0xE001D4AB", a hexadecimal 32-bit pointer value.

%s should be replaced by another string, in this case a description. Something like

the memory at 0xE001D4AB referenced
0xE005123F and could not be read.

Note that I made up the values. Basically, a kernel mode access violation occurred. Hopefully in the mini dumps you can see which module caused it and uninstall / update / whatever it.

谁把谁当真 2024-10-23 17:18:26

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

I believe it is just the placeholder for the memory address. 0x is a string prefix that would notify the user that it is an hexadecimal, while %08lx is the actual placeholder for a long int (l) converted to hexadecimal (x) with a padding of 8 zeroes (08).

來不及說愛妳 2024-10-23 17:18:26

我不是程序员,但我尝试阅读许多转储和临时文件。历年来的档案。在过去的两天里,我从Win8.1升级到Win10后似乎遇到了问题。从我刚刚查看的 ctfmon 转储来看,它看起来像是指的是 Win8.1 + Win10 的组合。 (“赢X”?)
作为; “081x”。说应该是“081x”,而‘不是’,是“‘0x081x’”!此外,它看起来像是我的 PC 上的恶意软件(来自未经请求的 atieexx?驱动程序),导致了 ctfmon 的违规,“突然出现”,并且驱动程序和 CTF 加载程序都作为程序运行。提到“远程文本输入”,(所有远程服务、服务器等都被禁用!)大约20次,后面跟着很多?,还有缓冲区溢出、异常,凡是你能想到的!似乎问题是“0”,x 081x(Win:08.1/10。)%ws,(网络套接字。)好像远程计算机是“0”系统?我只是重新编程,因为我在尝试运行虚拟盒子时偶然发现了一个令人讨厌的、无法检测的远程控制黑客。 (蓝屏。)“跳跳虎”,我相信,(韦伯博士)。在程序数据中留下了一个名为“krosqm”的文件!
(我的猜测是“Kollide-远程-操作系统-安静-管理?)看起来它仍然隐藏在某个地方!不得不扔掉2个路由器!无法恢复出厂设置,无线停止工作并闪烁黄灯!邪恶和令人讨厌的是,GMER 是唯一看到它的东西。
ASWER MBR 无法修复。现在就开始爆发BOOTICE吧!但我知道什么?
我不敢相信没有人真正知道这意味着什么!大家都在猜测!
我只是想我应该猜测一下。

I am not a programmer, but I have tried to read many dumps and temp. files over the years. It seems that I have been having problems after upgrading from Win8.1, to Win10 over the last 2 days. From the ctfmon dump that I just got through looking at, it looked like it was referring to a combination of Win8.1 + Win10. ("Win X"?)
As; "081x". Said that it should be "081x", and 'not', "'0x081x'"! Also, it looks like malware on my PC (From an unsolicited atieexx? driver.) causing the violation, by ctfmon, which "suddenly appeared", and both the driver and CTF loader were both running as programs. Mentioned "remote text input",(All remote svcs, server, etc. are disabled!) about 20 times, followed by many ?s, and buffer overflows, exceptions, you name it! Seemed the problem was "0", x 081x (Win:08.1/10.) %ws, (web socket.) as if the remote computer was '0'system? I just reprogrammed because of a nasty, undetectible, remote control hacker that I found by accident, when trying to run virtual box. (Blue screen.) "Tigger", I believe, (Dr Web). Left a file in program data named "krosqm"!
( My guess is "Kollide-remote-operating-system-quiet-management?) Looks like it is still hiding somewhere! Had to throw away 2 routers! Couldn't factory reset, and wireless quit working with flashing yellow light! Evil and Nasty. GMER is the only thing that saw it. Thought GRUB was the reason MBR was unknown, but supposedly "o.k.".
ASWER MBR wouldn't repair. Breaking out BOOTICE now! But what do I know?
I cant believe that no one really knows what this means! Everyone is guessing!
I just thought I'd throw in a guess.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文