<div dir="ltr">My current solution is change the code from this:<div><br></div>void<div>Target::SetExecutableModule (ModuleSP& executable_sp, bool get_dependent_files)<br>{<br>    Log *log(lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_TARGET));<br>    ClearModules(false);<br> <br>    if (executable_sp.get())<br>    {<div>        ...</div><div>    }</div><div>    ...</div><div>}</div><div><br></div><div> to this:</div><div><br></div>void<br>Target::SetExecutableModule (ModuleSP& executable_sp, bool get_dependent_files)<br>{<br>    Log *log(lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_TARGET));<br>    //ClearModules(false);<br>    ModulesDidUnload (m_images, false);<br>    //m_section_load_history.Clear();<br>    m_images.Clear();<br>    m_scratch_ast_context_ap.reset();<br>    m_scratch_ast_source_ap.reset();<br>    m_ast_importer_ap.reset();<br><br>    if (executable_sp.get())<br>    {<div>        ...</div><div>    }</div><div>    ...</div><div>}</div></div><div><br></div><div>It's work, although, it isn't the right way.</div><div><br></div><div>I think these code needs refine by someone who familiar with lldb codebase. </div><div>Hope the issue would be fixed in the next Xcode release.</div><div><br></div><div>Best Wishes,</div><div>Lei Shi<br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Jan 20, 2015 at 8:20 AM, Greg Clayton <span dir="ltr"><<a href="mailto:gclayton@apple.com" target="_blank">gclayton@apple.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class=""><br>
> On Jan 18, 2015, at 6:38 PM, Lei Shi <<a href="mailto:cosmo.shih@gmail.com">cosmo.shih@gmail.com</a>> wrote:<br>
><br>
> Hi, everyone<br>
><br>
> The Target::SetExecutableModule invoke Target::ClearModules at the very beginning. Target::ClearModules clears the m_section_load_histroy which maintains the section list of the target. the following symbol parsing phase needs section list of the executable. Empty section list will leads to Misinterpreting various symbol data including Function Starts.<br>
<br>
</span>How are you setting up your symbols prior to setting the target executable? Or is the dynamic loader plug-in doing this? Either way the target's main executable should be set, then the sections should be setup.<br>
<br>
How are you getting this to happen?<br>
<span class=""><br>
><br>
> I've tried to fix the issue by avoiding clear the m_section_history in Target::SetExecutableModule. It's work, but I not show weather it's a proper way to fix the issue.<br>
<br>
</span>This isn't the right way to do things. Let me know how you are getting Target::SetExecutableModule() to be called and I might be able to tell you more.<br>
<span class=""><br>
><br>
> Hope someone can review the fix.<br>
><br>
> Best,<br>
> Lei Shi<br>
</span>> _______________________________________________<br>
> lldb-dev mailing list<br>
> <a href="mailto:lldb-dev@cs.uiuc.edu">lldb-dev@cs.uiuc.edu</a><br>
> <a href="http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev</a><br>
<br>
</blockquote></div><br></div>