| ... | ... | @@ -392,19 +392,8 @@ pub const File = struct { |
| 392 | 392 | .linux => std.os.ptrace(std.os.linux.PTRACE.ATTACH, pid, 0, 0) catch |err| { |
| 393 | 393 | log.warn("ptrace failure: {s}", .{@errorName(err)}); |
| 394 | 394 | }, |
| 395 | | .macos => { |
| 396 | | const macho = base.cast(MachO).?; |
| 397 | | if (macho.mach_task == null) { |
| 398 | | if (std.os.darwin.machTaskForPid(pid)) |task| { |
| 399 | | macho.mach_task = task; |
| 400 | | // TODO enable ones we register for exceptions |
| 401 | | // std.os.ptrace(std.os.darwin.PT.ATTACHEXC, pid, 0, 0) catch |err| { |
| 402 | | // log.warn("ptrace failure: {s}", .{@errorName(err)}); |
| 403 | | // }; |
| 404 | | } else |err| { |
| 405 | | log.warn("failed to acquire Mach task for child process: {s}", .{@errorName(err)}); |
| 406 | | } |
| 407 | | } |
| 395 | .macos => base.cast(MachO).?.ptraceAttach(pid) catch |err| { |
| 396 | log.warn("attaching failed with error: {s}", .{@errorName(err)}); |
| 408 | 397 | }, |
| 409 | 398 | else => return error.HotSwapUnavailableOnHostOperatingSystem, |
| 410 | 399 | } |
| ... | ... | @@ -444,11 +433,9 @@ pub const File = struct { |
| 444 | 433 | .linux => std.os.ptrace(std.os.linux.PTRACE.DETACH, pid, 0, 0) catch |err| { |
| 445 | 434 | log.warn("ptrace failure: {s}", .{@errorName(err)}); |
| 446 | 435 | }, |
| 447 | | .macos => {}, |
| 448 | | // TODO see comment above in makeWritable |
| 449 | | // .macos => std.os.ptrace(std.os.darwin.PT.DETACH, pid, 0, 0) catch |err| { |
| 450 | | // log.warn("ptrace failure: {s}", .{@errorName(err)}); |
| 451 | | // }, |
| 436 | .macos => base.cast(MachO).?.ptraceDetach(pid) catch |err| { |
| 437 | log.warn("detaching failed with error: {s}", .{@errorName(err)}); |
| 438 | }, |
| 452 | 439 | else => return error.HotSwapUnavailableOnHostOperatingSystem, |
| 453 | 440 | } |
| 454 | 441 | } |