gpt4 book ai didi

python - gdb python pretty-print uint64_t 被解释为有符号

转载 作者:行者123 更新时间:2023-11-30 16:36:17 27 4
gpt4 key购买 nike

当我尝试使用时:

class MyPrinter:
def __init__(self, val):
self.val = val

def to_string(self):
return str(self.val['fData'][0]) + ":" + "%016x" % (self.val['fData'][0]).cast(gdb.lookup_type("uint64_t"))

打印
2929725441843584891:28a879c45a82df7b
但也
9918728419520062851:-7659990ddaef5a7d

当为 val 设置最高有效位时,它被解释为有符号。

fData[]uint64_t

我怎样才能避免这种情况?我的所有值都应该是无符号的。

最佳答案

至少作为一种解决方法,这对我有用:

class MyPrinter:
def __init__(self, val):
self.val = val

def to_hex(self, val):
s = ''
x = 7
while (x >= 0):
s = s + "%02x" % ((val>>(x*8))&255)
x -= 1

return s

def to_string(self):
return self.to_hex(self.val['fData'][0]) + self.to_hex(self.val['fData'][1])

关于python - gdb python pretty-print uint64_t 被解释为有符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48546215/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com