Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [tcf-dev] Problem planting breakpoints

Hi Christophe and sorry for my late answer, I wasn't on this machine since last Monday due to an exam I had to learn for.

I am still trying to understand what needs to be done in order to use the breakpoints correctly.

As my device is programmed I perform a send_context_stopped_event() which seems to cause the agent to plant the breakpoints (which works so far) and then performs a resume which lets the device run the program.

But I am still having the problem that after a breakpoint gets hit flush_instrutions() does unplant all breakpoints and but as it wants to "replant" it does not work because none of my breakpoints are set as hardware breakpoints. 

I think it is this part in flush_instructions()

    /* Plant hardware breakpoints first */
    l = lst.next;
    while (l != &lst) {
        BreakInstruction * bi = link_lst2bi(l);
        l = l->next;
        if (bi->hardware) {
            if (!bi->planted) plant_instruction(bi);
            list_remove(&bi->link_lst);
        }
    }

That is supposed to do so but doesn't. bi->hardware is always 0.
Where do I have to tell the agent/How do I tell the agent to treat all those breakpoints as hardware?

There is another part before the replanting part which "validates references" (as the comment says). Here bi->hardware is set to 0 and never set to 1 again because the breakpoint "type" contains "Auto" and not "Hardware" which would set bi->hardware back to 1.

I know I could just make a nasty workaround but I really want to use that agent as it is supposed to.

Thank you for any help!


Back to the top