]> git.proxmox.com Git - mirror_edk2.git/blame - ArmPlatformPkg/Scripts/Ds5/cmd_load_symbols.py
ARM Packages: Removed trailing spaces
[mirror_edk2.git] / ArmPlatformPkg / Scripts / Ds5 / cmd_load_symbols.py
CommitLineData
a8e812de 1#\r
72efe027 2# Copyright (c) 2011-2013, ARM Limited. All rights reserved.\r
a8e812de 3#\r
3402aac7
RC
4# This program and the accompanying materials\r
5# are licensed and made available under the terms and conditions of the BSD License\r
6# which accompanies this distribution. The full text of the license may be found at\r
7# http://opensource.org/licenses/bsd-license.php\r
8#\r
9# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
10# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
a8e812de 11#\r
12\r
13from arm_ds.debugger_v1 import Debugger\r
14from arm_ds.debugger_v1 import DebugException\r
15\r
16import re, sys, getopt\r
17\r
18import edk2_debugger\r
19\r
20# Reload external classes\r
21reload(edk2_debugger)\r
22\r
23def usage():\r
72efe027 24 print "-v,--verbose"\r
a8e812de 25 print "-a,--all: Load all symbols"\r
26 print "-l,--report=: Filename for the EDK2 report log"\r
27 print "-m,--sysmem=(base,size): System Memory region"\r
28 print "-f,--fv=(base,size): Firmware region"\r
29 print "-r,--rom=(base,size): ROM region"\r
30\r
72efe027 31verbose = False\r
a8e812de 32load_all = False\r
33report_file = None\r
34regions = []\r
72efe027 35opts,args = getopt.getopt(sys.argv[1:], "hvar:vm:vr:vf:v", ["help","verbose","all","report=","sysmem=","rom=","fv="])\r
a8e812de 36if (opts is None) or (not opts):\r
37 report_file = '../../../report.log'\r
38else:\r
39 region_reg = re.compile("\((.*),(.*)\)")\r
40 base_reg = re.compile("(.*)")\r
3402aac7 41\r
a8e812de 42 for o,a in opts:\r
43 region_type = None\r
44 regex = None\r
45 m = None\r
46 if o in ("-h","--help"):\r
47 usage()\r
48 sys.exit()\r
72efe027 49 elif o in ("-v","--verbose"):\r
50 verbose = True\r
a8e812de 51 elif o in ("-a","--all"):\r
52 load_all = True\r
53 elif o in ("-l","--report"):\r
54 report_file = a\r
55 elif o in ("-m","--sysmem"):\r
56 region_type = edk2_debugger.ArmPlatformDebugger.REGION_TYPE_SYSMEM\r
57 regex = region_reg\r
58 elif o in ("-f","--fv"):\r
59 region_type = edk2_debugger.ArmPlatformDebugger.REGION_TYPE_FV\r
60 regex = region_reg\r
61 elif o in ("-r","--rom"):\r
62 region_type = edk2_debugger.ArmPlatformDebugger.REGION_TYPE_ROM\r
63 regex = region_reg\r
64 else:\r
72efe027 65 assert False, "Unhandled option (%s)" % o\r
3402aac7 66\r
a8e812de 67 if region_type:\r
68 m = regex.match(a)\r
69 if m:\r
70 if regex.groups == 1:\r
71 regions.append((region_type,int(m.group(1),0),0))\r
72 else:\r
73 regions.append((region_type,int(m.group(1),0),int(m.group(2),0)))\r
74 else:\r
75 if regex.groups == 1:\r
76 raise Exception('cmd_load_symbols', "Expect a base address")\r
77 else:\r
78 raise Exception('cmd_load_symbols', "Expect a region format as (base,size)")\r
3402aac7 79\r
a8e812de 80# Debugger object for accessing the debugger\r
81debugger = Debugger()\r
82\r
83# Initialisation commands\r
84ec = debugger.getExecutionContext(0)\r
85ec.getExecutionService().stop()\r
86ec.getExecutionService().waitForStop()\r
87# in case the execution context reference is out of date\r
88ec = debugger.getExecutionContext(0)\r
89\r
a8e812de 90try:\r
72efe027 91 armplatform_debugger = edk2_debugger.ArmPlatformDebugger(ec, report_file, regions, verbose)\r
3402aac7 92\r
a8e812de 93 if load_all:\r
94 armplatform_debugger.load_all_symbols()\r
95 else:\r
96 armplatform_debugger.load_current_symbols()\r
97except IOError, (ErrorNumber, ErrorMessage):\r
98 print "Error: %s" % ErrorMessage\r
99except Exception, (ErrorClass, ErrorMessage):\r
100 print "Error(%s): %s" % (ErrorClass, ErrorMessage)\r
101except DebugException, de:\r
102 print "DebugError: %s" % (de.getMessage())\r