@@ -130,11 +130,17 @@ def main(crash_log, elfhelper):
130
130
131
131
elif eachline .startswith ("PC" ):
132
132
pc_val = parse_line_for_register (eachline )
133
- pc_name = elfhelper .function_name_for_addr (int (pc_val , 16 ))
133
+ if elfhelper :
134
+ pc_name = elfhelper .function_name_for_addr (int (pc_val , 16 ))
135
+ else :
136
+ pc_name = "<unknown-symbol>"
134
137
135
138
elif eachline .startswith ("LR" ):
136
139
lr_val = parse_line_for_register (eachline )
137
- lr_name = elfhelper .function_name_for_addr (int (lr_val , 16 ))
140
+ if elfhelper :
141
+ lr_name = elfhelper .function_name_for_addr (int (lr_val , 16 ))
142
+ else :
143
+ lr_name = "<unknown-symbol>"
138
144
139
145
elif eachline .startswith ("SP" ):
140
146
sp_val = parse_line_for_register (eachline )
@@ -181,20 +187,27 @@ def main(crash_log, elfhelper):
181
187
parser .add_argument (metavar = 'CRASH LOG' , type = argparse .FileType ('rb' , 0 ),
182
188
dest = 'crashlog' ,help = 'path to crash log file' )
183
189
parser .add_argument (metavar = 'ELF FILE' , type = argparse .FileType ('rb' , 0 ),
184
- dest = 'elffile' ,help = 'path to elf file' )
190
+ nargs = '?' , const = None , dest = 'elffile' ,help = 'path to elf file' )
185
191
parser .add_argument (metavar = 'MAP FILE' , type = argparse .FileType ('rb' , 0 ),
186
- dest = 'mapfile' ,help = 'path to map file' )
192
+ nargs = '?' , const = None , dest = 'mapfile' ,help = 'path to map file' )
187
193
188
194
# get and validate arguments
189
195
args = parser .parse_args ()
190
-
191
- elfhelper = ElfHelper (args .elffile , args .mapfile )
196
+
197
+ # if both the ELF and MAP files are present, the addresses can be converted to symbol names
198
+ if args .elffile and args .mapfile :
199
+ elfhelper = ElfHelper (args .elffile , args .mapfile )
200
+ else :
201
+ print ("ELF or MAP file missing, logging raw values." )
202
+ elfhelper = None
192
203
193
204
# parse input and write to output
194
205
main (args .crashlog , elfhelper )
195
206
196
207
#close all files
197
- args .elffile .close ()
198
- args .mapfile .close ()
208
+ if args .elffile :
209
+ args .elffile .close ()
210
+ if args .mapfile :
211
+ args .mapfile .close ()
199
212
args .crashlog .close ()
200
213
0 commit comments