================
@@ -491,3 +491,10 @@ bool CPPLanguageRuntime::IsSymbolARuntimeThunk(const 
Symbol &symbol) {
   return mangled_name.starts_with("_ZTh") || mangled_name.starts_with("_ZTv") 
||
          mangled_name.starts_with("_ZTc");
 }
+
+bool CPPLanguageRuntime::ShouldUseMicrosoftABI(Process *process) {
+  return process->GetTarget()
+      .GetArchitecture()
+      .GetTriple()
+      .isWindowsMSVCEnvironment();
----------------
mstorsjo wrote:

How does this distinguish whether the target process to be debugged is mingw or 
msvc style? Does this in the end just determine the style based on which 
flavour LLDB itself was built as?

Note that one process may include multiple DLLs that use both ABIs. (In 
particular, most mingw executables link in a bunch of MS DLLs that internally 
use their C++ ABI - even though we perhaps don't have debug info for them 
normally.)

And one may want to use a MSVC built LLDB for debugging mingw executables, or 
vice versa.

See 25c8a061c5739677d2fc0af29a8cc9520207b923 and 
3c867898c7be7ed2b5d119a2478a836a0c85f19b for existing options that allow 
controlling which C++ ABI to use for interpreting things; these options allow 
controlling this on the level of each individual DLL. Can't the information 
from those preexisting options be used here, instead of inventing a new and 
less flexible approach?



https://github.com/llvm/llvm-project/pull/168941
_______________________________________________
lldb-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to