|
10 | 10 | import argparse
|
11 | 11 | from prettytable import PrettyTable
|
12 | 12 |
|
13 |
| -from tools.utils import argparse_filestring_type, \ |
| 13 | +from utils import argparse_filestring_type, \ |
14 | 14 | argparse_lowercase_hyphen_type, argparse_uppercase_type
|
15 | 15 |
|
16 | 16 | DEBUG = False
|
| 17 | +DETAILED = False |
17 | 18 | RE_ARMCC = re.compile(
|
18 | 19 | r'^\s+0x(\w{8})\s+0x(\w{8})\s+(\w+)\s+(\w+)\s+(\d+)\s+[*]?.+\s+(.+)$')
|
19 | 20 | RE_IAR = re.compile(
|
@@ -114,9 +115,17 @@ def path_object_to_module_name(txt):
|
114 | 115 | module_name = data[0] + '/' + data[1]
|
115 | 116 |
|
116 | 117 | return [module_name, object_name]
|
117 |
| - else: |
| 118 | + |
| 119 | + elif DETAILED: |
| 120 | + rex_obj_name = r'^.+\/(.+\.o\)*)$' |
| 121 | + test_rex_obj_name = re.match(rex_obj_name, txt) |
| 122 | + if test_rex_obj_name: |
| 123 | + object_name = test_rex_obj_name.group(1) |
| 124 | + return ['Misc/' + object_name, ""] |
| 125 | + |
| 126 | + return ['Misc', ""] |
| 127 | + else: |
118 | 128 | return ['Misc', ""]
|
119 |
| - |
120 | 129 |
|
121 | 130 | def parse_section_gcc(self, line):
|
122 | 131 | """ Parse data from a section of gcc map file
|
@@ -620,14 +629,19 @@ def main():
|
620 | 629 | ", ".join(MemapParser.export_formats))
|
621 | 630 |
|
622 | 631 | parser.add_argument('-v', '--version', action='version', version=version)
|
| 632 | + |
| 633 | + parser.add_argument('-d', '--detailed', action='store_true', help='Displays the elements in "Misc" in a detailed fashion', required=False) |
623 | 634 |
|
624 | 635 | # Parse/run command
|
625 | 636 | if len(sys.argv) <= 1:
|
626 | 637 | parser.print_help()
|
627 | 638 | sys.exit(1)
|
628 | 639 |
|
629 | 640 |
|
630 |
| - args = parser.parse_args() |
| 641 | + args, remainder = parser.parse_known_args() |
| 642 | + |
| 643 | + global DETAILED |
| 644 | + DETAILED = args.detailed |
631 | 645 |
|
632 | 646 | # Create memap object
|
633 | 647 | memap = MemapParser()
|
|
0 commit comments