Răsfoiți Sursa

Feature #TASK_QT-18250 改bug

rock.wu 9 luni în urmă
părinte
comite
e99c464377
1 a modificat fișierele cu 8 adăugiri și 8 ștergeri
  1. 8 8
      ebpftracer/tracer/inject/inject_linux_amd64.go

+ 8 - 8
ebpftracer/tracer/inject/inject_linux_amd64.go

@@ -762,14 +762,14 @@ func modifyReleaseFuncEnter(pid int, originEnterAddr, debugEnterAddr uintptr) er
 	bytes := (*[12]byte)(unsafe.Pointer(&originalData))
 	bytes[originEnterAddr%uintptr(unsafe.Sizeof(uintptr(0)))] = 0x48
 	bytes[originEnterAddr%uintptr(unsafe.Sizeof(uintptr(1)))] = 0xb8
-	bytes[originEnterAddr%uintptr(unsafe.Sizeof(uintptr(2)))] = debugEnterAddr
-	bytes[originEnterAddr%uintptr(unsafe.Sizeof(uintptr(3)))] = debugEnterAddr >> 1*8
-	bytes[originEnterAddr%uintptr(unsafe.Sizeof(uintptr(4)))] = debugEnterAddr >> 2*8
-	bytes[originEnterAddr%uintptr(unsafe.Sizeof(uintptr(5)))] = debugEnterAddr >> 3*8
-	bytes[originEnterAddr%uintptr(unsafe.Sizeof(uintptr(6)))] = debugEnterAddr >> 4*8
-	bytes[originEnterAddr%uintptr(unsafe.Sizeof(uintptr(7)))] = debugEnterAddr >> 5*8
-	bytes[originEnterAddr%uintptr(unsafe.Sizeof(uintptr(8)))] = debugEnterAddr >> 6*8
-	bytes[originEnterAddr%uintptr(unsafe.Sizeof(uintptr(9)))] = debugEnterAddr >> 7*8
+	bytes[originEnterAddr%uintptr(unsafe.Sizeof(uintptr(2)))] = uint64(debugEnterAddr)
+	bytes[originEnterAddr%uintptr(unsafe.Sizeof(uintptr(3)))] = uint64(debugEnterAddr) >> 1*8
+	bytes[originEnterAddr%uintptr(unsafe.Sizeof(uintptr(4)))] = uint64(debugEnterAddr) >> 2*8
+	bytes[originEnterAddr%uintptr(unsafe.Sizeof(uintptr(5)))] = uint64(debugEnterAddr) >> 3*8
+	bytes[originEnterAddr%uintptr(unsafe.Sizeof(uintptr(6)))] = uint64(debugEnterAddr) >> 4*8
+	bytes[originEnterAddr%uintptr(unsafe.Sizeof(uintptr(7)))] = uint64(debugEnterAddr) >> 5*8
+	bytes[originEnterAddr%uintptr(unsafe.Sizeof(uintptr(8)))] = uint64(debugEnterAddr) >> 6*8
+	bytes[originEnterAddr%uintptr(unsafe.Sizeof(uintptr(9)))] = uint64(debugEnterAddr) >> 7*8
 	bytes[originEnterAddr%uintptr(unsafe.Sizeof(uintptr(10)))] = 0xff
 	bytes[originEnterAddr%uintptr(unsafe.Sizeof(uintptr(11)))] = 0xe0
 	// *(*uint32)(unsafe.Pointer(&bytes[(originEnterAddr%uintptr(unsafe.Sizeof(uintptr(0))))+1])) = uint32(offset)