aadsm updated this revision to Diff 296220.
aadsm added a comment.
I explored Greg's suggestion of checking if the functions were external
symbols. As suspected the overriden mmap is not external, so we can use this
check to avoid calling it!
It does look to me that Pavel's suggestion is the way to go in the future but I
don't have the knowledge to implement the suggestion nor (unfortunately) the
bandwidth to gain that knowledge right. In the meanwhile I was hoping we could
go with this new version of the patch.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D87868/new/
https://reviews.llvm.org/D87868
Files:
lldb/source/Plugins/Process/Utility/InferiorCallPOSIX.cpp
Index: lldb/source/Plugins/Process/Utility/InferiorCallPOSIX.cpp
===================================================================
--- lldb/source/Plugins/Process/Utility/InferiorCallPOSIX.cpp
+++ lldb/source/Plugins/Process/Utility/InferiorCallPOSIX.cpp
@@ -48,9 +48,10 @@
ConstString("mmap"), eFunctionNameTypeFull, include_symbols,
include_inlines, sc_list);
const uint32_t count = sc_list.GetSize();
- if (count > 0) {
+ for (uint32_t i = 0; i < count; i++) {
SymbolContext sc;
- if (sc_list.GetContextAtIndex(0, sc)) {
+ if (sc_list.GetContextAtIndex(i, sc) &&
+ (sc.symbol->IsExternal() || sc.symbol->IsWeak())) {
const uint32_t range_scope =
eSymbolContextFunction | eSymbolContextSymbol;
const bool use_inline_block_range = false;
Index: lldb/source/Plugins/Process/Utility/InferiorCallPOSIX.cpp
===================================================================
--- lldb/source/Plugins/Process/Utility/InferiorCallPOSIX.cpp
+++ lldb/source/Plugins/Process/Utility/InferiorCallPOSIX.cpp
@@ -48,9 +48,10 @@
ConstString("mmap"), eFunctionNameTypeFull, include_symbols,
include_inlines, sc_list);
const uint32_t count = sc_list.GetSize();
- if (count > 0) {
+ for (uint32_t i = 0; i < count; i++) {
SymbolContext sc;
- if (sc_list.GetContextAtIndex(0, sc)) {
+ if (sc_list.GetContextAtIndex(i, sc) &&
+ (sc.symbol->IsExternal() || sc.symbol->IsWeak())) {
const uint32_t range_scope =
eSymbolContextFunction | eSymbolContextSymbol;
const bool use_inline_block_range = false;
_______________________________________________
lldb-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits