diff options
Diffstat (limited to 'chromium/v8/tools/lldb_commands.py')
-rw-r--r-- | chromium/v8/tools/lldb_commands.py | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/chromium/v8/tools/lldb_commands.py b/chromium/v8/tools/lldb_commands.py index 2884cd60b01..dc96e5747d0 100644 --- a/chromium/v8/tools/lldb_commands.py +++ b/chromium/v8/tools/lldb_commands.py @@ -21,8 +21,17 @@ def current_frame(debugger): return current_thread(debugger).GetSelectedFrame() def no_arg_cmd(debugger, cmd): - current_frame(debugger).EvaluateExpression(cmd) - print("") + evaluate_result = current_frame(debugger).EvaluateExpression(cmd) + # When a void function is called the return value type is 0x1001 which + # is specified in http://tiny.cc/bigskz. This does not indicate + # an error so we check for that value below. + kNoResult = 0x1001 + error = evaluate_result.GetError() + if error.fail and error.value != kNoResult: + print("Failed to evaluate command {} :".format(cmd)) + print(error.description) + else: + print("") def ptr_arg_cmd(debugger, name, param, cmd): if not param: @@ -41,7 +50,7 @@ def job(debugger, param, *args): def jlh(debugger, param, *args): """Print v8::Local handle value""" ptr_arg_cmd(debugger, 'jlh', param, - "_v8_internal_Print_Object(*(v8::internal::Object**)(*{}))") + "_v8_internal_Print_Object(*(v8::internal::Object**)({}.val_))") def jco(debugger, param, *args): """Print the code object at the given pc (default: current pc)""" |