From bcc4943abd62ec7f8a3725d741456f242a6a2a7f Mon Sep 17 00:00:00 2001 From: Derek Parker Date: Wed, 14 Jan 2015 09:01:36 -0600 Subject: [PATCH] Move breakpointIDCounter to DebuggedProcess struct --- proctl/breakpoints_linux_amd64.go | 8 ++++---- proctl/proctl.go | 27 ++++++++++++--------------- 2 files changed, 16 insertions(+), 19 deletions(-) diff --git a/proctl/breakpoints_linux_amd64.go b/proctl/breakpoints_linux_amd64.go index f78bf7fe..81a9c089 100644 --- a/proctl/breakpoints_linux_amd64.go +++ b/proctl/breakpoints_linux_amd64.go @@ -77,13 +77,13 @@ func (dbp *DebuggedProcess) setBreakpoint(tid int, addr uint64) (*BreakPoint, er if err != nil { return nil, fmt.Errorf("could not set hardware breakpoint") } - breakpointIDCounter++ + dbp.breakpointIDCounter++ dbp.HWBreakPoints[i] = &BreakPoint{ FunctionName: fn.Name, File: f, Line: l, Addr: addr, - ID: breakpointIDCounter, + ID: dbp.breakpointIDCounter, } return dbp.HWBreakPoints[i], nil } @@ -98,14 +98,14 @@ func (dbp *DebuggedProcess) setBreakpoint(tid int, addr uint64) (*BreakPoint, er if err != nil { return nil, err } - breakpointIDCounter++ + dbp.breakpointIDCounter++ dbp.BreakPoints[addr] = &BreakPoint{ FunctionName: fn.Name, File: f, Line: l, Addr: addr, OriginalData: originalData, - ID: breakpointIDCounter, + ID: dbp.breakpointIDCounter, } return dbp.BreakPoints[addr], nil } diff --git a/proctl/proctl.go b/proctl/proctl.go index 8a8ac893..096d600e 100644 --- a/proctl/proctl.go +++ b/proctl/proctl.go @@ -20,17 +20,18 @@ import ( // Struct representing a debugged process. Holds onto pid, register values, // process struct and process state. type DebuggedProcess struct { - Pid int - Process *os.Process - Dwarf *dwarf.Data - GoSymTable *gosym.Table - FrameEntries *frame.FrameDescriptionEntries - HWBreakPoints [4]*BreakPoint // May need to change, amd64 supports 4 debug registers - BreakPoints map[uint64]*BreakPoint - Threads map[int]*ThreadContext - CurrentThread *ThreadContext - running bool - halt bool + Pid int + Process *os.Process + Dwarf *dwarf.Data + GoSymTable *gosym.Table + FrameEntries *frame.FrameDescriptionEntries + HWBreakPoints [4]*BreakPoint // May need to change, amd64 supports 4 debug registers + BreakPoints map[uint64]*BreakPoint + Threads map[int]*ThreadContext + CurrentThread *ThreadContext + breakpointIDCounter int + running bool + halt bool } type ManualStopError struct{} @@ -39,10 +40,6 @@ func (mse ManualStopError) Error() string { return "Manual stop requested" } -var ( - breakpointIDCounter = 0 -) - func Attach(pid int) (*DebuggedProcess, error) { dbp, err := newDebugProcess(pid, true) if err != nil { -- GitLab