Refactor setBreakpoint code
This commit is contained in:
parent
392abbda09
commit
1f473241c7
@ -81,13 +81,20 @@ func (dbp *Process) setBreakpoint(tid int, addr uint64, temp bool) (*Breakpoint,
|
|||||||
return nil, InvalidAddressError{address: addr}
|
return nil, InvalidAddressError{address: addr}
|
||||||
}
|
}
|
||||||
|
|
||||||
var id int
|
newBreakpoint := &Breakpoint{
|
||||||
|
FunctionName: fn.Name,
|
||||||
|
File: f,
|
||||||
|
Line: l,
|
||||||
|
Addr: addr,
|
||||||
|
Temp: temp,
|
||||||
|
}
|
||||||
|
|
||||||
if temp {
|
if temp {
|
||||||
dbp.tempBreakpointIDCounter++
|
dbp.tempBreakpointIDCounter++
|
||||||
id = dbp.tempBreakpointIDCounter
|
newBreakpoint.ID = dbp.tempBreakpointIDCounter
|
||||||
} else {
|
} else {
|
||||||
dbp.breakpointIDCounter++
|
dbp.breakpointIDCounter++
|
||||||
id = dbp.breakpointIDCounter
|
newBreakpoint.ID = dbp.breakpointIDCounter
|
||||||
}
|
}
|
||||||
|
|
||||||
// Try and set a hardware breakpoint.
|
// Try and set a hardware breakpoint.
|
||||||
@ -111,17 +118,9 @@ func (dbp *Process) setBreakpoint(tid int, addr uint64, temp bool) (*Breakpoint,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
dbp.arch.SetHardwareBreakpointUsage(i, true)
|
dbp.arch.SetHardwareBreakpointUsage(i, true)
|
||||||
dbp.Breakpoints[addr] = &Breakpoint{
|
newBreakpoint.reg = i
|
||||||
FunctionName: fn.Name,
|
newBreakpoint.hardware = true
|
||||||
File: f,
|
dbp.Breakpoints[addr] = newBreakpoint
|
||||||
Line: l,
|
|
||||||
Addr: addr,
|
|
||||||
ID: id,
|
|
||||||
Temp: temp,
|
|
||||||
hardware: true,
|
|
||||||
reg: i,
|
|
||||||
}
|
|
||||||
|
|
||||||
return dbp.Breakpoints[addr], nil
|
return dbp.Breakpoints[addr], nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -134,17 +133,10 @@ func (dbp *Process) setBreakpoint(tid int, addr uint64, temp bool) (*Breakpoint,
|
|||||||
if err := dbp.writeSoftwareBreakpoint(thread, addr); err != nil {
|
if err := dbp.writeSoftwareBreakpoint(thread, addr); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
dbp.Breakpoints[addr] = &Breakpoint{
|
newBreakpoint.OriginalData = originalData
|
||||||
FunctionName: fn.Name,
|
dbp.Breakpoints[addr] = newBreakpoint
|
||||||
File: f,
|
|
||||||
Line: l,
|
|
||||||
Addr: addr,
|
|
||||||
OriginalData: originalData,
|
|
||||||
ID: id,
|
|
||||||
Temp: temp,
|
|
||||||
}
|
|
||||||
|
|
||||||
return dbp.Breakpoints[addr], nil
|
return newBreakpoint, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (dbp *Process) writeSoftwareBreakpoint(thread *Thread, addr uint64) error {
|
func (dbp *Process) writeSoftwareBreakpoint(thread *Thread, addr uint64) error {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user