=?utf-8?q?José?= L. Junior <jljunio...@gmail.com>,
=?utf-8?q?José?= L. Junior <jljunio...@gmail.com>,
=?utf-8?q?José?= L. Junior <jljunio...@gmail.com>,
=?utf-8?q?José?= L. Junior <jljunio...@gmail.com>,
=?utf-8?q?José?= L. Junior <jljunio...@gmail.com>,
=?utf-8?q?José?= L. Junior <jljunio...@gmail.com>,
=?utf-8?q?José?= L. Junior <jljunio...@gmail.com>
Message-ID:
In-Reply-To: <llvm/llvm-project/pull/67019/l...@github.com>


================
@@ -38,7 +40,40 @@ Status CommandOptionsProcessLaunch::SetOptionValue(
   case 's': // Stop at program entry point
     launch_info.GetFlags().Set(eLaunchFlagStopAtEntry);
     break;
-
+  case 'm': // Stop at user entry point
+  {
+    TargetSP target_sp =
+        execution_context ? execution_context->GetTargetSP() : TargetSP();
+    ModuleSP main_module_sp = target_sp->GetExecutableModule();
+    FileSpecList shared_lib_filter;
+    shared_lib_filter.Append(main_module_sp->GetFileSpec());
+    llvm::SetVector<std::string, std::vector<std::string>,
+                    std::unordered_set<std::string>>
+        entryPointNamesSet;
+    for (LanguageType lang_type : Language::GetSupportedLanguages()) {
+      Language *lang = Language::FindPlugin(lang_type);
+      if (lang) {
+        std::string entryPointName = lang->GetUserEntryPointName();
+        if (!entryPointName.empty())
+          entryPointNamesSet.insert(entryPointName);
+      }
+    }
----------------
medismailben wrote:

You could check the size of `entryPointNamesSet` before trying to create the 
breakpoint, and return early if it's empty.
Breakpoint creation could fail for many reasons, so if you couldn't get any 
entry point name from the language plugin, we shouldn't bother creating a 
breakpoint and give the user a more accurate error message.

https://github.com/llvm/llvm-project/pull/67019
_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to