Ceci sur un M1 mini, fonctionnant sous 11.1 avec un Xcode mis à jour. (Toutes les mises à jour en attente ont été appliquées.) Le SIP n'a pas été désactivé (s'il peut l'être sur le M1).
Nous avons un programme que nous utilisons pour tester une mmap()
échec de notre application en cours de portage. Nous construisons le programme de test comme suit :
cc -v -arch arm64 -m64 -Wl,-no_adhoc_codesign -o mapfail mapfail.c
Ensuite, nous le signons. Il semble qu'il soit correctement signé :
@macarm[git:master]$ codesign -vvv mapfail
mapfail: valid on disk
mapfail: satisfies its Designated Requirement
@macarm[git:master]$
Nous avons activé le mode développeur sur le système. Nous avons également ajouté mon utilisateur au groupe _developer
groupe. Mon utilisateur n'est pas un administrateur, mais j'ai essayé en tant que tel et j'ai obtenu la même chose.
Lorsque nous exécutons le programme, il obtient une erreur de segmentation (SIGSEGV), nous voulons donc le déboguer avec lldb
mais c'est ce qui arrive :
@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)
Les recherches à ce sujet n'ont donné aucune information, même sur les forums de développeurs d'Apple.
Plus d'informations. J'ai essayé un droit ajouté à codesign
mais cela n'a pas fonctionné. Voici le droit que j'ai utilisé :
<?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>
Quelqu'un voit-il un problème avec ce XML ?