Hi,

I have a question regarding some of the logic of "Target::ReadMemory".
I'm looking at this code:

(in my copy this is line 1314)
    if (!addr.IsSectionOffset())
    {
        SectionLoadList &section_load_list = GetSectionLoadList();
        if (section_load_list.IsEmpty())
        {
            // No sections are loaded, so we must assume
            // we are not running yet and anything we are given is
            // a file address.
            file_addr = addr.GetOffset();
            // "addr" doesn't have a section, so its offset is the
            //file address
m_images.ResolveFileAddress (file_addr, resolved_addr);
        }
        else
        {
            // We have at least one section loaded. This can be becuase
            // we have manually loaded some sections with
            // "target modules load ..."
            // or because we have have a live process that has
            // sections loaded
            // through the dynamic loader
            load_addr = addr.GetOffset();
            // "addr" doesn't have a section,
            //so its offset is the load address
section_load_list.ResolveLoadAddress (load_addr, resolved_addr);
        }
    }

My question is why is section_load_list.IsEmpty() used (according to the comment below it) to deduce that the target is not running?

Further down the Target::ReadMemory I see the invocation ProcessIsValid() to discover the reverse. So why don't we just use

if(!ProcessIsValid()) instead of section_load_list.IsEmpty() earlier on in this function?

(To be clear: I'm looking at this as I'm trying to debug a loaded/running embedded target, over a gdb-remote, and my debug of the lldb session reports section_load_list.IsEmpty(). Possibly another issue, yes, but I think my question above still applies.)

I'm wondering if anyone in lldb-dev can comment on this?

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-dev mailing list
lldb-dev@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev

Reply via email to