junior-jl wrote:

> > Hi, @medismailben. I changed the code with your suggestions. Can you take a 
> > look if the early exits are correct before I commit, please?
> > ```c++
> > 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) {
> >         error.SetErrorString("Language not found\n");
> >         break;
> >       }
> >       std::string entryPointName = lang->GetUserEntryPointName().str();
> >       if (!entryPointName.empty())
> >         entryPointNamesSet.insert(entryPointName);
> >     }
> >     if (entryPointNamesSet.empty()) {
> >       error.SetErrorString("No entry point name found\n");
> >       break;
> >     }
> >     BreakpointSP bp_sp = target_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
> >     );
> >     if (!bp_sp) {
> >       error.SetErrorString("Breakpoint creation failed.\n");
> >       break;
> >     }
> >     bp_sp->SetOneShot(true);
> >     break;
> >   }
> > ```
> > 
> > 
> >     
> >       
> >     
> > 
> >       
> >     
> > 
> >     
> >   
> > Also, thank you for the reminder of changing the description of the PR. 
> > Done :)
> 
> This code in this switch statement should go into Target.h/Target.cpp as 
> something like:
> 
> ```
> lldb::BreakpointSP Target::CreateBreakpointAtUserEntry();
> ```
> 
> Then the code in this switch just calls that function. Then we can expose 
> this through the SBTarget API as well.

Done! ✅ 

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