Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [tcf-dev] Run to Line

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

 



This email and any attachments are intended for the sole use of the named recipient(s) and contain(s) confidential information that may be proprietary, privileged or copyrighted under applicable law. If you are not the intended recipient, do not read, copy, or forward this email message or any attachments. Delete this email message and any attachments immediately.


Back to the top