Skip to content

Commit 37b8402

Browse files
dcpleungnashif
authored andcommitted
coredump: run ruff format on scripts
This is done via "ruff format" without any manual editing. Signed-off-by: Daniel Leung <[email protected]>
1 parent 67e6720 commit 37b8402

File tree

12 files changed

+198
-145
lines changed

12 files changed

+198
-145
lines changed

.ruff-excludes.toml

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -965,17 +965,6 @@ exclude = [
965965
"./samples/subsys/zbus/remote_mock/remote_mock.py",
966966
"./scripts/check_maintainers.py",
967967
"./scripts/ci/upload_test_results_es.py",
968-
"./scripts/coredump/coredump_gdbserver.py",
969-
"./scripts/coredump/coredump_parser/elf_parser.py",
970-
"./scripts/coredump/coredump_parser/log_parser.py",
971-
"./scripts/coredump/coredump_serial_log_parser.py",
972-
"./scripts/coredump/gdbstubs/arch/arm64.py",
973-
"./scripts/coredump/gdbstubs/arch/arm_cortex_m.py",
974-
"./scripts/coredump/gdbstubs/arch/risc_v.py",
975-
"./scripts/coredump/gdbstubs/arch/x86.py",
976-
"./scripts/coredump/gdbstubs/arch/x86_64.py",
977-
"./scripts/coredump/gdbstubs/arch/xtensa.py",
978-
"./scripts/coredump/gdbstubs/gdbstub.py",
979968
"./scripts/dts/gen_defines.py",
980969
"./scripts/dts/gen_driver_kconfig_dts.py",
981970
"./scripts/dts/gen_dts_cmake.py",

scripts/coredump/coredump_gdbserver.py

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -43,14 +43,10 @@ def parse_args():
4343

4444
parser.add_argument("elffile", help="Zephyr ELF binary")
4545
parser.add_argument("logfile", help="Coredump binary log file")
46-
parser.add_argument("--debug", action="store_true",
47-
help="Print extra debugging information")
48-
parser.add_argument("--port", type=int, default=1234,
49-
help="GDB server port")
50-
parser.add_argument("--pipe", action="store_true",
51-
help="Use stdio to communicate with gdb")
52-
parser.add_argument("-v", "--verbose", action="store_true",
53-
help="Print more information")
46+
parser.add_argument("--debug", action="store_true", help="Print extra debugging information")
47+
parser.add_argument("--port", type=int, default=1234, help="GDB server port")
48+
parser.add_argument("--pipe", action="store_true", help="Use stdio to communicate with gdb")
49+
parser.add_argument("-v", "--verbose", action="store_true", help="Print more information")
5450

5551
return parser.parse_args()
5652

scripts/coredump/coredump_parser/elf_parser.py

Lines changed: 57 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
SHF_WRITE_ALLOC = SHF_WRITE | SHF_ALLOC
2020
SHF_ALLOC_EXEC = SHF_ALLOC | SHF_EXEC
2121

22+
2223
# Must match enum in thread_info.c
2324
class ThreadInfoOffset(IntEnum):
2425
THREAD_INFO_OFFSET_VERSION = 0
@@ -44,7 +45,7 @@ def __int__(self):
4445
logger = logging.getLogger("parser")
4546

4647

47-
class CoredumpElfFile():
48+
class CoredumpElfFile:
4849
"""
4950
Class to parse ELF file for memory content in various sections.
5051
There are read-only sections (e.g. text and rodata) where
@@ -78,7 +79,11 @@ def has_kernel_thread_info(self):
7879
return self.kernel_thread_info_offsets is not None
7980

8081
def get_kernel_thread_info_offset(self, thread_info_offset_index):
81-
if self.has_kernel_thread_info() and thread_info_offset_index <= ThreadInfoOffset.THREAD_INFO_OFFSET_T_ARC_RELINQUISH_CAUSE:
82+
if (
83+
self.has_kernel_thread_info()
84+
and thread_info_offset_index
85+
<= ThreadInfoOffset.THREAD_INFO_OFFSET_T_ARC_RELINQUISH_CAUSE
86+
):
8287
return self.kernel_thread_info_offsets[thread_info_offset_index]
8388
else:
8489
return None
@@ -96,14 +101,20 @@ def parse(self):
96101
for section in self.elf.iter_sections():
97102
# Find symbols for _kernel_thread_info data
98103
if isinstance(section, elftools.elf.sections.SymbolTableSection):
99-
_kernel_thread_info_offsets = section.get_symbol_by_name("_kernel_thread_info_offsets")
100-
_kernel_thread_info_num_offsets = section.get_symbol_by_name("_kernel_thread_info_num_offsets")
101-
_kernel_thread_info_size_t_size = section.get_symbol_by_name("_kernel_thread_info_size_t_size")
104+
_kernel_thread_info_offsets = section.get_symbol_by_name(
105+
"_kernel_thread_info_offsets"
106+
)
107+
_kernel_thread_info_num_offsets = section.get_symbol_by_name(
108+
"_kernel_thread_info_num_offsets"
109+
)
110+
_kernel_thread_info_size_t_size = section.get_symbol_by_name(
111+
"_kernel_thread_info_size_t_size"
112+
)
102113

103114
# REALLY NEED to match exact type as all other sections
104115
# (debug, text, etc.) are descendants where
105116
# isinstance() would match.
106-
if type(section) is not elftools.elf.sections.Section: # pylint: disable=unidiomatic-typecheck
117+
if type(section) is not elftools.elf.sections.Section: # pylint: disable=unidiomatic-typecheck
107118
continue
108119

109120
size = section['sh_size']
@@ -132,56 +143,80 @@ def parse(self):
132143

133144
if store:
134145
mem_region = {"start": sec_start, "end": sec_end, "data": section.data()}
135-
logger.info("ELF Section: 0x%x to 0x%x of size %d (%s)" %
136-
(mem_region["start"],
137-
mem_region["end"],
138-
len(mem_region["data"]),
139-
sect_desc))
146+
logger.info(
147+
"ELF Section: 0x%x to 0x%x of size %d (%s)"
148+
% (mem_region["start"], mem_region["end"], len(mem_region["data"]), sect_desc)
149+
)
140150

141151
self.memory_regions.append(mem_region)
142152

143-
if _kernel_thread_info_size_t_size is not None and \
144-
_kernel_thread_info_num_offsets is not None and \
145-
_kernel_thread_info_offsets is not None:
153+
if (
154+
_kernel_thread_info_size_t_size is not None
155+
and _kernel_thread_info_num_offsets is not None
156+
and _kernel_thread_info_offsets is not None
157+
):
146158
for seg in self.elf.iter_segments():
147159
if seg.header['p_type'] != 'PT_LOAD':
148160
continue
149161

150162
# Store segment of kernel_thread_info_offsets
151163
info_offsets_symbol = _kernel_thread_info_offsets[0]
152-
if info_offsets_symbol['st_value'] >= seg['p_vaddr'] and info_offsets_symbol['st_value'] < seg['p_vaddr'] + seg['p_filesz']:
164+
if (
165+
info_offsets_symbol['st_value'] >= seg['p_vaddr']
166+
and info_offsets_symbol['st_value'] < seg['p_vaddr'] + seg['p_filesz']
167+
):
153168
kernel_thread_info_offsets_segment = seg
154169

155170
# Store segment of kernel_thread_info_num_offsets
156171
num_offsets_symbol = _kernel_thread_info_num_offsets[0]
157-
if num_offsets_symbol['st_value'] >= seg['p_vaddr'] and num_offsets_symbol['st_value'] < seg['p_vaddr'] + seg['p_filesz']:
172+
if (
173+
num_offsets_symbol['st_value'] >= seg['p_vaddr']
174+
and num_offsets_symbol['st_value'] < seg['p_vaddr'] + seg['p_filesz']
175+
):
158176
kernel_thread_info_num_offsets_segment = seg
159177

160178
# Read and store size_t size
161179
size_t_size_symbol = _kernel_thread_info_size_t_size[0]
162-
if size_t_size_symbol['st_value'] >= seg['p_vaddr'] and size_t_size_symbol['st_value'] < seg['p_vaddr'] + seg['p_filesz']:
180+
if (
181+
size_t_size_symbol['st_value'] >= seg['p_vaddr']
182+
and size_t_size_symbol['st_value'] < seg['p_vaddr'] + seg['p_filesz']
183+
):
163184
offset = size_t_size_symbol['st_value'] - seg['p_vaddr'] + seg['p_offset']
164185
self.elf.stream.seek(offset)
165-
self.kernel_thread_info_size_t_size = struct.unpack('B', self.elf.stream.read(size_t_size_symbol['st_size']))[0]
186+
self.kernel_thread_info_size_t_size = struct.unpack(
187+
'B', self.elf.stream.read(size_t_size_symbol['st_size'])
188+
)[0]
166189

167190
struct_format = "I"
168191
if self.kernel_thread_info_size_t_size == 8:
169192
struct_format = "Q"
170193

171194
# Read and store count of offset values
172195
num_offsets_symbol = _kernel_thread_info_num_offsets[0]
173-
offset = num_offsets_symbol['st_value'] - kernel_thread_info_num_offsets_segment['p_vaddr'] + kernel_thread_info_num_offsets_segment['p_offset']
196+
offset = (
197+
num_offsets_symbol['st_value']
198+
- kernel_thread_info_num_offsets_segment['p_vaddr']
199+
+ kernel_thread_info_num_offsets_segment['p_offset']
200+
)
174201
self.elf.stream.seek(offset)
175-
self.kernel_thread_info_num_offsets = struct.unpack(struct_format, self.elf.stream.read(num_offsets_symbol['st_size']))[0]
202+
self.kernel_thread_info_num_offsets = struct.unpack(
203+
struct_format, self.elf.stream.read(num_offsets_symbol['st_size'])
204+
)[0]
176205

177206
array_format = ""
178207
for _ in range(self.kernel_thread_info_num_offsets):
179208
array_format = array_format + struct_format
180209

181210
# Read and store array of offset values
182211
info_offsets_symbol = _kernel_thread_info_offsets[0]
183-
offset = info_offsets_symbol['st_value'] - kernel_thread_info_offsets_segment['p_vaddr'] + kernel_thread_info_offsets_segment['p_offset']
212+
offset = (
213+
info_offsets_symbol['st_value']
214+
- kernel_thread_info_offsets_segment['p_vaddr']
215+
+ kernel_thread_info_offsets_segment['p_offset']
216+
)
184217
self.elf.stream.seek(offset)
185-
self.kernel_thread_info_offsets = struct.unpack(array_format, self.elf.stream.read(info_offsets_symbol['st_size']))
218+
self.kernel_thread_info_offsets = struct.unpack(
219+
array_format, self.elf.stream.read(info_offsets_symbol['st_size'])
220+
)
186221

187222
return True

scripts/coredump/coredump_parser/log_parser.py

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ def __init__(self, logfile):
6262
self.log_hdr = None
6363
self.arch_data = list()
6464
self.memory_regions = list()
65-
self.threads_metadata = {"hdr_ver" : None, "data" : None}
65+
self.threads_metadata = {"hdr_ver": None, "data": None}
6666

6767
def open(self):
6868
self.fd = open(self.logfile, "rb")
@@ -85,7 +85,7 @@ def parse_arch_section(self):
8585

8686
arch_data = self.fd.read(num_bytes)
8787

88-
self.arch_data = {"hdr_ver" : hdr_ver, "data" : arch_data}
88+
self.arch_data = {"hdr_ver": hdr_ver, "data": arch_data}
8989

9090
return True
9191

@@ -95,7 +95,7 @@ def parse_threads_metadata_section(self):
9595

9696
data = self.fd.read(num_bytes)
9797

98-
self.threads_metadata = {"hdr_ver" : hdr_ver, "data" : data}
98+
self.threads_metadata = {"hdr_ver": hdr_ver, "data": data}
9999

100100
return True
101101

@@ -126,8 +126,7 @@ def parse_memory_section(self):
126126
mem = {"start": saddr, "end": eaddr, "data": data}
127127
self.memory_regions.append(mem)
128128

129-
logger.info("Memory: 0x%x to 0x%x of size %d" %
130-
(saddr, eaddr, size))
129+
logger.info("Memory: 0x%x to 0x%x of size %d" % (saddr, eaddr, size))
131130

132131
return True
133132

@@ -147,15 +146,15 @@ def parse(self):
147146
logger.error(f"Log version: {hdr_ver}, expected: {COREDUMP_HDR_VER}!")
148147
return False
149148

150-
ptr_size = 2 ** ptr_size
149+
ptr_size = 2**ptr_size
151150

152151
self.log_hdr = {
153-
"hdr_version": hdr_ver,
154-
"tgt_code": tgt_code,
155-
"ptr_size": ptr_size,
156-
"flags": flags,
157-
"reason": reason,
158-
}
152+
"hdr_version": hdr_ver,
153+
"tgt_code": tgt_code,
154+
"ptr_size": ptr_size,
155+
"flags": flags,
156+
"reason": reason,
157+
}
159158

160159
logger.info("Reason: {0}".format(reason_string(reason)))
161160
logger.info(f"Pointer size {ptr_size}")
@@ -168,7 +167,7 @@ def parse(self):
168167
# no more data to read
169168
break
170169

171-
self.fd.seek(-1, 1) # go back 1 byte
170+
self.fd.seek(-1, 1) # go back 1 byte
172171
if section_id == COREDUMP_ARCH_HDR_ID:
173172
if not self.parse_arch_section():
174173
logger.error("Cannot parse architecture section")

scripts/coredump/coredump_serial_log_parser.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,7 @@ def parse_args():
2020
parser = argparse.ArgumentParser(allow_abbrev=False)
2121

2222
parser.add_argument("infile", help="Serial Log File")
23-
parser.add_argument("outfile",
24-
help="Output file for use with coredump GDB server")
23+
parser.add_argument("outfile", help="Output file for use with coredump GDB server")
2524

2625
return parser.parse_args()
2726

scripts/coredump/gdbstubs/arch/arm64.py

Lines changed: 29 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@
1414
logger = logging.getLogger("gdbstub")
1515

1616

17-
class RegNum():
18-
X0 = 0 # X0-X29 - 30 GP registers
17+
class RegNum:
18+
X0 = 0 # X0-X29 - 30 GP registers
1919
X1 = 1
2020
X2 = 2
2121
X3 = 3
@@ -44,22 +44,21 @@ class RegNum():
4444
X26 = 26
4545
X27 = 27
4646
X28 = 28
47-
X29 = 29 # Frame pointer register
48-
LR = 30 # X30 Link Register(LR)
49-
SP_EL0 = 31 # Stack pointer EL0 (SP_EL0)
50-
PC = 32 # Program Counter (PC)
47+
X29 = 29 # Frame pointer register
48+
LR = 30 # X30 Link Register(LR)
49+
SP_EL0 = 31 # Stack pointer EL0 (SP_EL0)
50+
PC = 32 # Program Counter (PC)
5151

5252

5353
class GdbStub_ARM64(GdbStub):
54-
ARCH_DATA_BLK_STRUCT = "<QQQQQQQQQQQQQQQQQQQQQQ"
54+
ARCH_DATA_BLK_STRUCT = "<QQQQQQQQQQQQQQQQQQQQQQ"
5555

5656
# Default signal used by all other script, just using the same
5757
GDB_SIGNAL_DEFAULT = 7
5858

5959
# The number of registers expected by GDB
6060
GDB_G_PKT_NUM_REGS = 33
6161

62-
6362
def __init__(self, logfile, elffile):
6463
super().__init__(logfile=logfile, elffile=elffile)
6564
self.registers = None
@@ -68,41 +67,39 @@ def __init__(self, logfile, elffile):
6867
self.parse_arch_data_block()
6968

7069
def parse_arch_data_block(self):
71-
7270
arch_data_blk = self.logfile.get_arch_data()['data']
7371

7472
tu = struct.unpack(self.ARCH_DATA_BLK_STRUCT, arch_data_blk)
7573

7674
self.registers = dict()
7775

78-
self.registers[RegNum.X0] = tu[0]
79-
self.registers[RegNum.X1] = tu[1]
80-
self.registers[RegNum.X2] = tu[2]
81-
self.registers[RegNum.X3] = tu[3]
82-
self.registers[RegNum.X4] = tu[4]
83-
self.registers[RegNum.X5] = tu[5]
84-
self.registers[RegNum.X6] = tu[6]
85-
self.registers[RegNum.X7] = tu[7]
86-
self.registers[RegNum.X8] = tu[8]
87-
self.registers[RegNum.X9] = tu[9]
88-
self.registers[RegNum.X10] = tu[10]
89-
self.registers[RegNum.X11] = tu[11]
90-
self.registers[RegNum.X12] = tu[12]
91-
self.registers[RegNum.X13] = tu[13]
92-
self.registers[RegNum.X14] = tu[14]
93-
self.registers[RegNum.X15] = tu[15]
94-
self.registers[RegNum.X16] = tu[16]
95-
self.registers[RegNum.X17] = tu[17]
96-
self.registers[RegNum.X18] = tu[18]
76+
self.registers[RegNum.X0] = tu[0]
77+
self.registers[RegNum.X1] = tu[1]
78+
self.registers[RegNum.X2] = tu[2]
79+
self.registers[RegNum.X3] = tu[3]
80+
self.registers[RegNum.X4] = tu[4]
81+
self.registers[RegNum.X5] = tu[5]
82+
self.registers[RegNum.X6] = tu[6]
83+
self.registers[RegNum.X7] = tu[7]
84+
self.registers[RegNum.X8] = tu[8]
85+
self.registers[RegNum.X9] = tu[9]
86+
self.registers[RegNum.X10] = tu[10]
87+
self.registers[RegNum.X11] = tu[11]
88+
self.registers[RegNum.X12] = tu[12]
89+
self.registers[RegNum.X13] = tu[13]
90+
self.registers[RegNum.X14] = tu[14]
91+
self.registers[RegNum.X15] = tu[15]
92+
self.registers[RegNum.X16] = tu[16]
93+
self.registers[RegNum.X17] = tu[17]
94+
self.registers[RegNum.X18] = tu[18]
9795

9896
# Callee saved registers are not provided in arch_esf structure
9997
# So they will be omitted (set to undefined) when stub generates the
10098
# packet in handle_register_group_read_packet.
10199

102-
self.registers[RegNum.LR] = tu[19]
103-
self.registers[RegNum.SP_EL0] = tu[20]
104-
self.registers[RegNum.PC] = tu[21]
105-
100+
self.registers[RegNum.LR] = tu[19]
101+
self.registers[RegNum.SP_EL0] = tu[20]
102+
self.registers[RegNum.PC] = tu[21]
106103

107104
def handle_register_group_read_packet(self):
108105
reg_fmt = "<Q"

0 commit comments

Comments
 (0)