Todd Fiala wrote:
> Please note that I copied a lot of the PlatformLinux code into PlatformKalimba

Oh shucks, I have a boatload of changes going into PlatformLinux to support remote debugging! I've been stuck the last week dealing with testing, Windows-related builds/issues, and other minutiae but I am looking to getting back to this. You can keep your eyes on the changes I check in for PlatofrmLinux to support llgs. I'll be refactoring a bunch of code in PlatformDarwin into PlatformPOSIX, and changing a few more details in PlatformLinux.

Thanks, that could be useful. One of the things I need to do with PlatformKalimba is enable the "platform process" command pull back data about remote targets. This type of data would assist me in supplying non-intrusive debug of the kalimbas . Greg floated an idea where I think could use platform process/list/info to get data which may include the run state of connected (by SPI wire) kalimbas. Firstly "list" connected devices, "PID" being virtual since kailmba (currently) runs no OS:

(lldb) platform process list
PID    PARENT USER       ARCH                  NAME
====== ====== ========== ===================== ============================
1                        kalimba-csr-unknown   kal4 (1 core)
2                        kalimba-csr-unknown   kal4 (1 core)

Then we could determine whether the chip is running first, before doing any such *intrusive classic gdb-remote* style (which always forces the target to stop). Appreciate I may need additional GDB-RSP message to achieve this...

(lldb) platform process info 1
Process information for process 1:
pid=1
status=running
...

Do you think your PlatformLinux stuff may have some code I can copy which may help with this area?

> When I invoke "target create kalimba.elf" I actually see ObjectFileELF::GetSectionHeaderInfo called *several times* whilst the target is created:

Yeah I have a note to go back to figure out why that's the case. When I added the note support, I saw it getting called several times when it seems like it should have been once. The ObjectFileELF was getting created and destroyed multiple times, which I think was unintended. I'll look closer into why that's happening.
I've just had a quick look. It looks to me like...

1. PlatformLinux::ResolveExecutable determines if exe is loadable on the SharedModuleList
error = ModuleList::GetSharedModule (module_spec, exe_module_sp,

but even if error==success, it inspects the exe_module_sp (output by above)
if (!exe_module_sp || exe_module_sp->GetObjectFile() == NULL)

to see, if the GetObjectFile is valid. (If it's NULL ResExec then *fails*).

2. But Module::GetObjectFile() then calls ObjectFileELF::GetArchitecture,
passing it's ArchSpec as a non-const ref.

3.  ObjectFileELF::GetArchitecture then calls ParseSectionHeaders
which mutes the spec.

So, with my limited architectural knowledge of lldb, I think another possible fix would be to change ObjectFileELF::GetArchitecture so that it does not call ParseSectionHeaders if m_section_headers is non-empty. This, at least, prevent the static function (GSHI) being called again.

Thanks for reminding me.

> It would be great if we could prevent the arch_spec being modified again, after the headers are parsed. Either with my patch or something similar. Anyway, I'm off now, so I'll catch up sometime tomorrow.

Okay, hopefully by then it will all be better :-)

Ok, thanks.

Matt



Member of the CSR plc group of companies. CSR plc registered in England and 
Wales, registered number 4187346, registered office Churchill House, Cambridge 
Business Park, Cowley Road, Cambridge, CB4 0WZ, United Kingdom
More information can be found at www.csr.com. Keep up to date with CSR on our 
technical blog, www.csr.com/blog, CSR people blog, www.csr.com/people, YouTube, 
www.youtube.com/user/CSRplc, Facebook, 
www.facebook.com/pages/CSR/191038434253534, or follow us on Twitter at 
www.twitter.com/CSR_plc.
New for 2014, you can now access the wide range of products powered by aptX at 
www.aptx.com.
_______________________________________________
lldb-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits

Reply via email to