[Lldb-commits] [lldb] [lldb] add stop-at-user-entry option to process launch (PR #67019)
Jonas Devlieghere via lldb-commits
lldb-commits at lists.llvm.org
Mon Oct 9 14:25:14 PDT 2023
================
@@ -335,6 +335,47 @@ BreakpointSP Target::GetBreakpointByID(break_id_t break_id) {
return bp_sp;
}
+lldb::BreakpointSP
+lldb_private::Target::CreateBreakpointAtUserEntry(Status &error) {
+ ModuleSP main_module_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) {
+ error.SetErrorString("Language not found\n");
+ return lldb::BreakpointSP();
+ }
+ std::string entryPointName = lang->GetUserEntryPointName().str();
+ if (!entryPointName.empty())
+ entryPointNamesSet.insert(entryPointName);
+ }
+ if (entryPointNamesSet.empty()) {
+ error.SetErrorString("No entry point name found\n");
+ return lldb::BreakpointSP();
+ }
+ BreakpointSP bp_sp =
+ CreateBreakpoint(&shared_lib_filter,
+ nullptr, // containingSourceFiles
+ entryPointNamesSet.takeVector(),
+ eFunctionNameTypeFull, // func_name_type_mask
+ eLanguageTypeUnknown, // language
+ 0, // offset
+ eLazyBoolNo, // skip_prologue
+ false, // internal
+ false // hardware
----------------
JDevlieghere wrote:
Is there prior art in Target.cpp for specifying the arguments like this? I think most of the code base uses inline comments (e.g. `/*containingSourceFiles=*/nullptr`)
https://github.com/llvm/llvm-project/pull/67019
More information about the lldb-commits
mailing list