@@ -72,13 +72,13 @@ def read_plist(s):
72
72
else :
73
73
return plistlib .readPlistFromString (s )
74
74
75
-
76
- PARSE_MODE_NORMAL = 0
77
- PARSE_MODE_THREAD = 1
78
- PARSE_MODE_IMAGES = 2
79
- PARSE_MODE_THREGS = 3
80
- PARSE_MODE_SYSTEM = 4
81
- PARSE_MODE_INSTRS = 5
75
+ class CrashLogParseMode :
76
+ NORMAL = 0
77
+ THREAD = 1
78
+ IMAGES = 2
79
+ THREGS = 3
80
+ SYSTEM = 4
81
+ INSTRS = 5
82
82
83
83
84
84
class CrashLog (symbolication .Symbolicator ):
@@ -369,15 +369,15 @@ def __init__(self, path, verbose):
369
369
return
370
370
371
371
self .file_lines = f .read ().splitlines ()
372
- parse_mode = PARSE_MODE_NORMAL
372
+ parse_mode = CrashLogParseMode . NORMAL
373
373
thread = None
374
374
app_specific_backtrace = False
375
375
for line in self .file_lines :
376
376
# print line
377
377
line_len = len (line )
378
378
if line_len == 0 :
379
379
if thread :
380
- if parse_mode == PARSE_MODE_THREAD :
380
+ if parse_mode == CrashLogParseMode . THREAD :
381
381
if thread .index == self .crashed_thread_idx :
382
382
thread .reason = ''
383
383
if self .thread_exception :
@@ -394,9 +394,9 @@ def __init__(self, path, verbose):
394
394
# in the info_lines wasn't empty
395
395
if len (self .info_lines ) > 0 and len (self .info_lines [- 1 ]):
396
396
self .info_lines .append (line )
397
- parse_mode = PARSE_MODE_NORMAL
398
- # print 'PARSE_MODE_NORMAL '
399
- elif parse_mode == PARSE_MODE_NORMAL :
397
+ parse_mode = CrashLogParseMode . NORMAL
398
+ # print 'CrashLogParseMode.NORMAL '
399
+ elif parse_mode == CrashLogParseMode . NORMAL :
400
400
if line .startswith ('Process:' ):
401
401
(self .process_name , pid_with_brackets ) = line [
402
402
8 :].strip ().split (' [' )
@@ -439,7 +439,7 @@ def __init__(self, path, verbose):
439
439
self .version = int (line [15 :].strip ())
440
440
continue
441
441
elif line .startswith ('System Profile:' ):
442
- parse_mode = PARSE_MODE_SYSTEM
442
+ parse_mode = CrashLogParseMode . SYSTEM
443
443
continue
444
444
elif (line .startswith ('Interval Since Last Report:' ) or
445
445
line .startswith ('Crashes Since Last Report:' ) or
@@ -455,38 +455,38 @@ def __init__(self, path, verbose):
455
455
app_specific_backtrace = False
456
456
thread_state_match = self .thread_regex .search (line )
457
457
thread_idx = int (thread_state_match .group (1 ))
458
- parse_mode = PARSE_MODE_THREGS
458
+ parse_mode = CrashLogParseMode . THREGS
459
459
thread = self .threads [thread_idx ]
460
460
continue
461
461
thread_insts_match = self .thread_instrs_regex .search (line )
462
462
if thread_insts_match :
463
- parse_mode = PARSE_MODE_INSTRS
463
+ parse_mode = CrashLogParseMode . INSTRS
464
464
continue
465
465
thread_match = self .thread_regex .search (line )
466
466
if thread_match :
467
467
app_specific_backtrace = False
468
- parse_mode = PARSE_MODE_THREAD
468
+ parse_mode = CrashLogParseMode . THREAD
469
469
thread_idx = int (thread_match .group (1 ))
470
470
thread = CrashLog .Thread (thread_idx , False )
471
471
continue
472
472
continue
473
473
elif line .startswith ('Binary Images:' ):
474
- parse_mode = PARSE_MODE_IMAGES
474
+ parse_mode = CrashLogParseMode . IMAGES
475
475
continue
476
476
elif line .startswith ('Application Specific Backtrace' ):
477
477
app_backtrace_match = self .app_backtrace_regex .search (line )
478
478
if app_backtrace_match :
479
- parse_mode = PARSE_MODE_THREAD
479
+ parse_mode = CrashLogParseMode . THREAD
480
480
app_specific_backtrace = True
481
481
idx = int (app_backtrace_match .group (1 ))
482
482
thread = CrashLog .Thread (idx , True )
483
483
elif line .startswith ('Last Exception Backtrace:' ): # iOS
484
- parse_mode = PARSE_MODE_THREAD
484
+ parse_mode = CrashLogParseMode . THREAD
485
485
app_specific_backtrace = True
486
486
idx = 1
487
487
thread = CrashLog .Thread (idx , True )
488
488
self .info_lines .append (line .strip ())
489
- elif parse_mode == PARSE_MODE_THREAD :
489
+ elif parse_mode == CrashLogParseMode . THREAD :
490
490
if line .startswith ('Thread' ):
491
491
continue
492
492
if self .null_frame_regex .search (line ):
@@ -504,7 +504,7 @@ def __init__(self, path, verbose):
504
504
frame_addr , 0 ), frame_ofs ))
505
505
else :
506
506
print ('error: frame regex failed for line: "%s"' % line )
507
- elif parse_mode == PARSE_MODE_IMAGES :
507
+ elif parse_mode == CrashLogParseMode . IMAGES :
508
508
image_match = self .image_regex_uuid .search (line )
509
509
if image_match :
510
510
(img_lo , img_hi , img_name , _ , img_version , _ ,
@@ -519,7 +519,7 @@ def __init__(self, path, verbose):
519
519
else :
520
520
print ("error: image regex failed for: %s" % line )
521
521
522
- elif parse_mode == PARSE_MODE_THREGS :
522
+ elif parse_mode == CrashLogParseMode . THREGS :
523
523
stripped_line = line .strip ()
524
524
# "r12: 0x00007fff6b5939c8 r13: 0x0000000007000006 r14: 0x0000000000002a03 r15: 0x0000000000000c00"
525
525
reg_values = re .findall (
@@ -530,9 +530,9 @@ def __init__(self, path, verbose):
530
530
# print 'reg = "%s"' % reg
531
531
# print 'value = "%s"' % value
532
532
thread .registers [reg .strip ()] = int (value , 0 )
533
- elif parse_mode == PARSE_MODE_SYSTEM :
533
+ elif parse_mode == CrashLogParseMode . SYSTEM :
534
534
self .system_profile .append (line )
535
- elif parse_mode == PARSE_MODE_INSTRS :
535
+ elif parse_mode == CrashLogParseMode . INSTRS :
536
536
pass
537
537
f .close ()
538
538
0 commit comments