fjricci updated this revision to Diff 44361.
fjricci added a comment.
Disable exception trapping by default on all functions in InferiorCallPOSIX
http://reviews.llvm.org/D15978
Files:
source/Plugins/Process/Utility/InferiorCallPOSIX.cpp
source/Plugins/Process/Utility/InferiorCallPOSIX.h
Index: source/Plugins/Process/Utility/InferiorCallPOSIX.h
===================================================================
--- source/Plugins/Process/Utility/InferiorCallPOSIX.h
+++ source/Plugins/Process/Utility/InferiorCallPOSIX.h
@@ -31,7 +31,8 @@
bool InferiorCallMunmap(Process *proc, lldb::addr_t addr, lldb::addr_t length);
-bool InferiorCall(Process *proc, const Address *address, lldb::addr_t
&returned_func);
+bool InferiorCall(Process *proc, const Address *address, lldb::addr_t
&returned_func,
+ bool trap_exceptions = false);
} // namespace lldb_private
Index: source/Plugins/Process/Utility/InferiorCallPOSIX.cpp
===================================================================
--- source/Plugins/Process/Utility/InferiorCallPOSIX.cpp
+++ source/Plugins/Process/Utility/InferiorCallPOSIX.cpp
@@ -72,6 +72,7 @@
options.SetTryAllThreads(true);
options.SetDebug (false);
options.SetTimeoutUsec(500000);
+ options.SetTrapExceptions(false);
addr_t prot_arg, flags_arg = 0;
if (prot == eMmapProtNone)
@@ -172,6 +173,7 @@
options.SetTryAllThreads(true);
options.SetDebug (false);
options.SetTimeoutUsec(500000);
+ options.SetTrapExceptions(false);
AddressRange munmap_range;
if (sc.GetAddressRange(range_scope, 0, use_inline_block_range,
munmap_range))
@@ -214,7 +216,8 @@
bool
lldb_private::InferiorCall (Process *process,
const Address *address,
- addr_t &returned_func)
+ addr_t &returned_func,
+ bool trap_exceptions)
{
Thread *thread = process->GetThreadList().GetSelectedThread().get();
if (thread == NULL || address == NULL)
@@ -227,6 +230,7 @@
options.SetTryAllThreads(true);
options.SetDebug (false);
options.SetTimeoutUsec(500000);
+ options.SetTrapExceptions(trap_exceptions);
ClangASTContext *clang_ast_context =
process->GetTarget().GetScratchClangASTContext();
CompilerType clang_void_ptr_type =
clang_ast_context->GetBasicType(eBasicTypeVoid).GetPointerType();
Index: source/Plugins/Process/Utility/InferiorCallPOSIX.h
===================================================================
--- source/Plugins/Process/Utility/InferiorCallPOSIX.h
+++ source/Plugins/Process/Utility/InferiorCallPOSIX.h
@@ -31,7 +31,8 @@
bool InferiorCallMunmap(Process *proc, lldb::addr_t addr, lldb::addr_t length);
-bool InferiorCall(Process *proc, const Address *address, lldb::addr_t &returned_func);
+bool InferiorCall(Process *proc, const Address *address, lldb::addr_t &returned_func,
+ bool trap_exceptions = false);
} // namespace lldb_private
Index: source/Plugins/Process/Utility/InferiorCallPOSIX.cpp
===================================================================
--- source/Plugins/Process/Utility/InferiorCallPOSIX.cpp
+++ source/Plugins/Process/Utility/InferiorCallPOSIX.cpp
@@ -72,6 +72,7 @@
options.SetTryAllThreads(true);
options.SetDebug (false);
options.SetTimeoutUsec(500000);
+ options.SetTrapExceptions(false);
addr_t prot_arg, flags_arg = 0;
if (prot == eMmapProtNone)
@@ -172,6 +173,7 @@
options.SetTryAllThreads(true);
options.SetDebug (false);
options.SetTimeoutUsec(500000);
+ options.SetTrapExceptions(false);
AddressRange munmap_range;
if (sc.GetAddressRange(range_scope, 0, use_inline_block_range, munmap_range))
@@ -214,7 +216,8 @@
bool
lldb_private::InferiorCall (Process *process,
const Address *address,
- addr_t &returned_func)
+ addr_t &returned_func,
+ bool trap_exceptions)
{
Thread *thread = process->GetThreadList().GetSelectedThread().get();
if (thread == NULL || address == NULL)
@@ -227,6 +230,7 @@
options.SetTryAllThreads(true);
options.SetDebug (false);
options.SetTimeoutUsec(500000);
+ options.SetTrapExceptions(trap_exceptions);
ClangASTContext *clang_ast_context = process->GetTarget().GetScratchClangASTContext();
CompilerType clang_void_ptr_type = clang_ast_context->GetBasicType(eBasicTypeVoid).GetPointerType();
_______________________________________________
lldb-commits mailing list
[email protected]
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits