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!

Well, bi->virtual_address is '1' and bi->hardware is '0'

This is what happens:

1) Breakpoints get planted before device starts the program 
2) Device runs and hits a breakpoint
3) Eclipse does stuff..
4) Agent unplants all breakpoints
5) Agent replants all breakpoints (but as virtual address breakpoints)
6) Agent unplants all breakpoints since they "aren't used".

I still have no idea how to treat this right :(

Best regards

--
Stefan Falk

Infineon Technologies Austria AG
Trainee
Automotive Sense and Control
Component Verification

Tel:  +43 (0)5 / 1777 - 5439
Email: stefan.falk@xxxxxxxxxxxx

"Aim above the mark to hit the mark." - Ralph Waldo Emerson

-----Original Message-----
From: tcf-dev-bounces@xxxxxxxxxxx [mailto:tcf-dev-bounces@xxxxxxxxxxx] On Behalf Of Christophe Augier
Sent: Tuesday, May 27, 2014 3:35 PM
To: tcf-dev@xxxxxxxxxxx
Subject: Re: [tcf-dev] Problem planting breakpoints

Hi Peter,

what is the value of bi->virtual_addr?

For the "Auto" type I don't know how it is handled as I don't see any 
reference to it in breakpoints.c. Eugene can probably explain that case.

- Christophe



On 05/26/2014 11:29 AM, Stefan.Falk@xxxxxxxxxxxx wrote:
> 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!
> _______________________________________________
> tcf-dev mailing list
> tcf-dev@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/tcf-dev

_______________________________________________
tcf-dev mailing list
tcf-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/tcf-dev


Back to the top