(addr uintptr, increment uint32)
| 320 | } |
| 321 | |
| 322 | func findMacho(addr uintptr, increment uint32) (uintptr, error) { |
| 323 | var ( |
| 324 | base uintptr |
| 325 | header uint32 |
| 326 | err error = fmt.Errorf("could not find macho") |
| 327 | ) |
| 328 | ptr := addr |
| 329 | for { |
| 330 | if isPtrValid(ptr) { |
| 331 | header = *(*uint32)(unsafe.Pointer(ptr)) |
| 332 | if header == macho.Magic64 { |
| 333 | base = ptr |
| 334 | err = nil |
| 335 | break |
| 336 | } |
| 337 | } |
| 338 | ptr += uintptr(increment) |
| 339 | } |
| 340 | return base, err |
| 341 | } |
| 342 | |
| 343 | func findMachoPtr(addr uintptr) (uintptr, error) { |
| 344 | var ( |
no test coverage detected
searching dependent graphs…