Esto es en un M1 mini, corriendo 11.1 con un Xcode actualizado. (Todas las actualizaciones pendientes se han aplicado.) SIP no se ha desactivado (si es que se puede, en el M1).
Tenemos un programa que estamos utilizando para probar un mmap()
fallo en nuestra aplicación que se está portando. Construimos el programa de prueba así:
cc -v -arch arm64 -m64 -Wl,-no_adhoc_codesign -o mapfail mapfail.c
Entonces, lo firmamos. Parece que está correctamente firmado:
@macarm[git:master]$ codesign -vvv mapfail
mapfail: valid on disk
mapfail: satisfies its Designated Requirement
@macarm[git:master]$
Hemos activado el modo de desarrollador en el sistema. También hemos añadido mi usuario al _developer
grupo. Mi usuario no es un administrador, pero lo probé como tal y obtuve lo mismo.
Cuando ejecutamos el programa obtiene un fallo de segmentación (SIGSEGV), por lo que queremos depurarlo con lldb
pero esto sucede:
@macarm[git:master]$ lldb mapfail
(lldb) target create "mapfail"
Current executable set to '/Users/layer/mapfail' (arm64).
(lldb) run
error: process exited with status -1 (attach failed ((os/kern) invalid argument))
(lldb)
Las búsquedas al respecto no han arrojado ninguna información, ni siquiera en los foros de desarrolladores de Apple.
Más información. He probado un derecho añadido en codesign
tiempo, pero eso no funcionó. Aquí está el derecho que utilicé:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.security.get-task-allow</key>
<true/>
</dict>
</plist>
¿Alguien ve algún problema con este XML?