Messages in this thread | | | Date | Wed, 31 Aug 2022 17:01:04 +0200 | Subject | Re: [PATCH 2/3] scripts/gdb: fix lx-timerlist for Python3 | From | Jan Kiszka <> |
| |
On 20.07.22 14: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
Means this only ever worked with Python2? And we now hard-switch it to Python3? Not voting against this, just confused if it was like this so far.
Jan
> > 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):
-- Siemens AG, Technology Competence Center Embedded Linux
| |