From f66a2023a8b0e04638bc3e1ee27bc9df50827ccf Mon Sep 17 00:00:00 2001 From: Derek Parker Date: Wed, 28 May 2014 15:58:12 -0500 Subject: [PATCH] Use single byte to store INT3 --- proctl/proctl_linux_amd64.go | 4 ++-- proctl/proctl_test.go | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/proctl/proctl_linux_amd64.go b/proctl/proctl_linux_amd64.go index 68945b09..8b8a5ea6 100644 --- a/proctl/proctl_linux_amd64.go +++ b/proctl/proctl_linux_amd64.go @@ -96,9 +96,9 @@ func (dbp *DebuggedProcess) Registers() (*syscall.PtraceRegs, error) { // Sets a breakpoint in the running process. func (dbp *DebuggedProcess) Break(addr uintptr) (*BreakPoint, error) { var ( - int3 = []byte{'0', 'x', 'C', 'C'} + int3 = []byte{0xCC} f, l, fn = dbp.GoSymTable.PCToLine(uint64(addr)) - orginalData = make([]byte, 4) + orginalData = make([]byte, 1) ) _, err := syscall.PtracePeekData(dbp.Pid, addr, orginalData) diff --git a/proctl/proctl_test.go b/proctl/proctl_test.go index 1b00c3cb..4d8ef62a 100644 --- a/proctl/proctl_test.go +++ b/proctl/proctl_test.go @@ -140,7 +140,7 @@ func TestBreakPoint(t *testing.T) { } pc := regs.PC() - if pc != sleepyaddr { + if pc != sleepyaddr+1 { t.Fatalf("Break not respected:\nPC:%d\nFN:%d\n", pc, sleepyaddr) }