Hi J.R.,
In the agent, we use breakpoint property “Service”:”RunControl” to distinguishing such automatic breakpoints from user breakpoints.
The attribute is set, for example, for “Step Out” breakpoint. It is intended to be used for allocation of reserved hardware breakpoints.
I have added same attribute for breakpoints created by Eclipse UI.
Regards,
Eugene
From: tcf-dev-bounces@xxxxxxxxxxx [mailto:tcf-dev-bounces@xxxxxxxxxxx]
On Behalf Of J.R. Heisey
Sent: Wednesday, March 01, 2017 11:40 AM
To: tcf-dev@xxxxxxxxxxx
Subject: [tcf-dev] Run to Line
Greetings,
I have a custom TCF agent mostly implemented. I have reserved a breakpoint at the hardware for use when Eclipse runs to the main() entry point. I am currently identifying this breakpoint usage as when the Location attribute is defined and
the Line attribute is not.
I would also like to use this hardware breakpoint when the user select ‘Run to Line’ from the menu. Below is the attribute list as viewed in Visual Studio in the function context_plant_breakpoint().
However I want a reliable way of distinguishing these usages from a regular execution breakpoint listed in the Breakpoints view of Eclipse. Any suggestions?
The access_types member is always 0x14 for all of the BP usages I’ve seen.
For the “Run to Line” I see the ID attribute value has the prefix “Step“ however in my own design style I try not to use string matching to determine code behavior. I prefer enums so I can catch typos at compile
time. In a regular BP the ID is the absolute path to the source file in the form of “file:/path/filename:linenum” so it looks like I can reliably test for ID == “Step.something”. I don’t see a #define for “Step”.
- ba 0x00683668 {next=0x006834e0 name=0x00683550 "Line" value=0x0067fe48 "73" } BreakpointAttribute *
- next 0x006834e0 {next=0x00683b00 name=0x006836d8 "Enabled" value=0x00683b38 "true" } BreakpointAttribute *
- next 0x00683b00 {next=0x00683a90 name=0x0067fe78 "ID" value=0x00683a58 ""Step.P1.2"" } BreakpointAttribute *
- next 0x00683a90 {next=0x00000000 name=0x006839e8 "File" value=0x00683a20 ""main.cpp"" } BreakpointAttribute *
+ next 0x00000000 {next=??? name=??? value=??? } BreakpointAttribute *
+ name 0x006839e8 "File" char *
+ value 0x00683a20 ""main.cpp"" char *
+ name 0x0067fe78 "ID" char *
+ value 0x00683a58 ""Step.P1.2"" char *
+ name 0x006836d8 "Enabled" char *
+ value 0x00683b38 "true" char *
+ name 0x00683550 "Line" char *
+ value 0x0067fe48 "73" char *
Thanks,
J.R. Heisey