Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
Please login to access the resource
home:Ledest:erlang:18
erlang
2335-etp.py-Print-special-CPs-such-as-normal_ex...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 2335-etp.py-Print-special-CPs-such-as-normal_exit-symboli.patch of Package erlang
From a508ba9beb5bb1a647dfd0efc3ac19792ecf6119 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Gustavsson?= <bjorn@erlang.org> Date: Sun, 11 Apr 2021 08:29:49 +0200 Subject: [PATCH 4/7] etp.py: Print special CPs such as normal_exit symbolically --- erts/etc/unix/etp.py | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/erts/etc/unix/etp.py b/erts/etc/unix/etp.py index 7917e5cc48..88afc26998 100644 --- a/erts/etc/unix/etp.py +++ b/erts/etc/unix/etp.py @@ -28,6 +28,7 @@ import lldb import shlex unquoted_atom_re = re.compile(u'^[a-zß-öø-ÿ][a-zA-Zß-öø-ÿ0-9@]*$') +code_pointers = {} def __lldb_init_module(debugger, internal_dict): debugger.HandleCommand('type format add -f hex Eterm') @@ -44,6 +45,7 @@ def __lldb_init_module(debugger, internal_dict): #################################### def processes_cmd(debugger, command, result, internal_dict): target = debugger.GetSelectedTarget() + init(target) proc = erts_proc(target) proc_r_o = proc.GetChildMemberWithName('r').GetChildMemberWithName('o') proc_max_ix = proc_r_o.GetChildMemberWithName('max') @@ -65,6 +67,7 @@ def processes_cmd(debugger, command, result, internal_dict): ############################################ def process_info_cmd(debugger, command, result, internal_dict): target = debugger.GetSelectedTarget() + init(target) proc = target.process.selected_thread.GetSelectedFrame().EvaluateExpression(command).Cast(ProcessPtr(target)) process_info(proc) @@ -235,6 +238,7 @@ def process_flags(proc): ############################################ def stacktrace_cmd(debugger, command, result, internal_dict): target = debugger.GetSelectedTarget() + init(target) proc = target.process.selected_thread.GetSelectedFrame().EvaluateExpression(command).Cast(ProcessPtr(target)) stackdump(proc, False) @@ -243,6 +247,7 @@ def stacktrace_cmd(debugger, command, result, internal_dict): ############################################ def stackdump_cmd(debugger, command, result, internal_dict): target = debugger.GetSelectedTarget() + init(target) proc = target.process.selected_thread.GetSelectedFrame().EvaluateExpression(command).Cast(ProcessPtr(target)) stackdump(proc, True) @@ -268,6 +273,7 @@ def stackdump(proc, dump): def eterm_cmd(debugger, command, result, internal_dict): args = shlex.split(command) target = debugger.GetSelectedTarget() + init(target) term = target.process.selected_thread.GetSelectedFrame().EvaluateExpression(args[0]).Cast(EtermPtr(target)) if len(args) >= 2: print(eterm(term, int(args[1]))) @@ -431,7 +437,11 @@ def imm(valobj): def cp(valobj): mfaptr = erts_lookup_function_info(valobj) if mfaptr == None: - return '#Cp<%#x>' % valobj.unsigned + pointer = code_pointers.get(valobj.unsigned) + if pointer != None: + return '#Cp<%s>' % pointer + else: + return '#Cp<%#x>' % valobj.unsigned else: return '#Cp<%s>' % mfa(mfaptr) @@ -649,6 +659,14 @@ def pixdata2data(valobj): data |= (pixdata & pix_cli_mask) << pix_cli_shift return data +def init(target): + names = ['beam_apply', 'beam_normal_exit', 'beam_exit', 'beam_save_calls', + 'beam_bif_export_trap', 'beam_export_trampoline', 'beam_continue_exit', + 'beam_return_to_trace', 'beam_return_trace', 'beam_exception_trace', + 'beam_return_time_trace'] + for name in names: + code_pointers[global_var(name, target).unsigned] = name + # LLDB utils def global_var(name, target): -- 2.26.2
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor