Messages in this thread | | | Date | Wed, 31 Aug 2022 10:02:24 +0800 | Subject | Re: [PATCH 2/3] scripts/gdb: fix lx-timerlist for Python3 | From | Peng Liu <> |
| |
ping
On 2022/8/22 17:30, Peng Liu wrote: > ping > > On 2022/8/4 16:50, Peng Liu wrote: >> ping >> >> On 2022/7/20 20:27, pngliu@hotmail.com wrote: >>> From: Peng Liu <liupeng17@lenovo.com> >>> >>> Below incompatibilities between Python2 and Python3 made lx-timerlist >>> fail to run under Python3. >>> >>> o xrange() is replaced by range() in Python3 >>> o bytes and str are different types in Python3 >>> o the return value of Inferior.read_memory() is memoryview object in >>> Python3 >>> >>> Signed-off-by: Peng Liu <liupeng17@lenovo.com> >>> --- >>> scripts/gdb/linux/timerlist.py | 4 +++- >>> scripts/gdb/linux/utils.py | 5 ++++- >>> 2 files changed, 7 insertions(+), 2 deletions(-) >>> >>> diff --git a/scripts/gdb/linux/timerlist.py >>> b/scripts/gdb/linux/timerlist.py >>> index 44e39dc3eb64..8281da068c5b 100644 >>> --- a/scripts/gdb/linux/timerlist.py >>> +++ b/scripts/gdb/linux/timerlist.py >>> @@ -72,7 +72,7 @@ def print_cpu(hrtimer_bases, cpu, max_clock_bases): >>> ts = cpus.per_cpu(tick_sched_ptr, cpu) >>> text = "cpu: {}\n".format(cpu) >>> - for i in xrange(max_clock_bases): >>> + for i in range(max_clock_bases): >>> text += " clock {}:\n".format(i) >>> text += print_base(cpu_base['clock_base'][i]) >>> @@ -157,6 +157,8 @@ def pr_cpumask(mask): >>> num_bytes = (nr_cpu_ids + 7) / 8 >>> buf = utils.read_memoryview(inf, bits, num_bytes).tobytes() >>> buf = binascii.b2a_hex(buf) >>> + if type(buf) is not str: >>> + buf=buf.decode() >>> chunks = [] >>> i = num_bytes >>> diff --git a/scripts/gdb/linux/utils.py b/scripts/gdb/linux/utils.py >>> index ff7c1799d588..db59f986c7fd 100644 >>> --- a/scripts/gdb/linux/utils.py >>> +++ b/scripts/gdb/linux/utils.py >>> @@ -89,7 +89,10 @@ def get_target_endianness(): >>> def read_memoryview(inf, start, length): >>> - return memoryview(inf.read_memory(start, length)) >>> + m = inf.read_memory(start, length) >>> + if type(m) is memoryview: >>> + return m >>> + return memoryview(m) >>> def read_u16(buffer, offset):
| |