debugging - 有没有办法将 GUID 与随机数区分开来?

标签 debugging random guid undefined-behavior

在调试晦涩的代码缺陷时,能够将 GUID 与随机数据区分开来可能很有用。

在 Windows 上,生成的每个 GUID 都是版本 4,因此它具有“4”作为第三部分的前半字节。因此,如果 16 字节序列违反了该规则,则它不是版本 4 GUID。例如,

567E1ECB-EA1C-42D3-A3ED-87A5D824D167

可以是版本 4 GUID 或其他任何东西,但是
567E1ECB-EA1C-02D3-A3ED-87A5D824D167 //third section starts with 0, not with 4

不是版本 4 GUID。

16 字节内存块是否是有效 GUID 的其他标志是什么?

最佳答案

GUID 是十六进制的,因此您可以检查包含哪些字符(即“X”、“Y”等无效)

检查维基百科的定义,你可能会在那里找到更多的想法。

http://en.wikipedia.org/wiki/Globally_Unique_Identifier

关于debugging - 有没有办法将 GUID 与随机数区分开来?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1771410/

相关文章:

c - Linux 内核中的进入和退出打印

CSS HasLayout IE7 错误 - 尝试隐藏缩放和溢出

java - 每个循环将数字添加到数组

com - 我可以在windbg中显示GUID吗?

wix - 如何使用wixharvesting工具生成一致的GUID

visual-studio - 使用 Visual Studio 的跟踪点以十六进制格式打印表达式结果

python - 在 org 模式下调试 PYTHON 代码块 babel

javascript - 可预测的 Javascript 数组随机播放

python - random.shuffle 在用列表乘法制作的列表列表中表现得很奇怪

c# - 从 Oracle 的 RAW(16) 转换为 .NET 的 GUID