Le message d'erreur que vous avez obtenu provient directement du noyau du système d'exploitation et signale une corruption inattendue de la mémoire. Cela n'est évidemment pas censé se produire. 0xdeadbeef est en effet un "chiffre magique" courant, mais il apparaît ici pour une raison très spécifique.
Plus précisément, ce message d'erreur provient de zalloc (un allocateur de mémoire par zone) au sein du noyau. Le noyau est la partie du système d'exploitation qui est exécutée en "mode privilégié", ce qui signifie en gros qu'il a un accès complet à l'ordinateur. Vos propres applications sont exécutées dans un mode limité qui lui donne moins d'accès à l'ordinateur. Dans le cadre de son fonctionnement, le noyau utilise la mémoire RAM pour stocker et traiter les informations. Afin de garder la trace des parties de la RAM qui sont effectivement utilisées, le noyau utilise plusieurs allocateurs différents. L'allocateur de mémoire basé sur les zones est spécial en ce sens qu'il n'est utilisé que par le noyau lui-même (c'est-à-dire pas par les applications) et qu'il n'alloue que des blocs de RAM de taille spécifique et fixe. Par exemple, il peut allouer des blocs de 256, 512 et 1024 octets, mais il n'allouera pas un bloc de 300 octets. Ceci est fait pour rendre l'allocateur plus simple et donc plus rapide.
La partie du message d'erreur concernant le cookie fait référence à une fonctionnalité liée à la sécurité, où les pointeurs (adresses mémoire) dans le noyau sont "empoisonnés" en les combinant (avec XOR) avec un cookie. Le cookie est simplement un nombre aléatoire choisi lorsque vous démarrez votre ordinateur. Cela garantit que ces adresses mémoire semblent aléatoires, et ne sont pas prévisibles par les virus/malwares qui exploitent les bogues pour accéder aux ressources privilégiées.
Une fonctionnalité spécifique de l'allocateur basé sur la zone est que lorsque le noyau libère la mémoire (c'est-à-dire qu'il déclare qu'il n'a plus besoin d'un morceau de mémoire allouée), il ne se contente pas de noter qu'elle est libre pour un autre usage - mais il écrase également le pointeur de mémoire avec le nombre magique 0xdeadbeef. Cela sert deux objectifs : (1) si le noyau utilise par erreur la mémoire après l'avoir libérée, le fait de suivre le pointeur ne va pas "fonctionner" ou "pointer vers d'autres données qui seront corrompues" - mais plutôt déclencher une interruption d'erreur système, car l'adresse 0xdeadbeef est mappée pour s'assurer que cela se produise, (2) si l'allocateur est sollicité plus tard pour une nouvelle allocation et veut à nouveau distribuer le même bloc, il peut détecter s'il a été modifié, ce qui signifie qu'il y a un bogue ou une erreur matérielle quelque part.
Dans votre cas, le message d'erreur indique que (2) s'est produit - quelque chose a altéré une partie de la RAM de votre ordinateur que le noyau pensait être marquée comme non utilisée. La cause d'une telle corruption de mémoire est le plus souvent un bogue du noyau, un bogue d'une extension tierce du noyau ou une erreur matérielle.
Si le problème est un bogue du noyau, vous n'avez probablement aucun moyen de le résoudre, sauf à attendre une nouvelle mise à jour d'Apple ou à passer à une version antérieure de MacOS. Si cela se produit une fois de temps en temps, attendez la prochaine mise à jour. Si cela se produit fréquemment, vous pouvez essayer de déterminer exactement ce que vous avez fait pour déclencher le bogue, et éviter de le faire à l'avenir - ou passer à une version antérieure de MacOS qui ne présente pas le bogue.
Si le problème est un bug d'une extension de noyau tierce, je vérifierais les mises à jour de toutes les extensions de noyau que vous avez installées. Les extensions du noyau sont généralement installées en tant que pilotes pour du matériel tiers, ou pour des applications spéciales qui modifient le fonctionnement du système à un niveau inférieur. Il peut s'agir par exemple d'un logiciel de virtualisation (tel que VMware) ou d'un logiciel tel que Little Snitch ou similaire. C'est toujours une bonne idée de déconnecter tout matériel tiers et de ne pas lancer ces applications de bas niveau et de vérifier si le problème disparaît - puis de reconnecter un élément à la fois jusqu'à ce que le problème disparaisse.
Si le problème est dû à une erreur matérielle, vous n'avez pas vraiment d'autre choix que de faire remplacer le matériel. Habituellement, les erreurs de ce type sont causées par des modules de RAM défectueux. Il peut également s'agir d'un problème thermique ou de carte logique, mais ce n'est généralement pas le cas. Utilisez le test matériel Apple pour vérifier si vos modules de RAM sont défectueux.
Dans le cas extrême, cette erreur pourrait être causée par un virus, mais je chercherais d'abord d'autres raisons. Un virus ou un logiciel malveillant tente généralement de dissimuler son existence, de sorte qu'il ne déclencherait pas de messages d'erreur de ce type (et ne provoquerait pas de blocage du système). Cependant, il est possible qu'un bogue dans un virus déclenche ces messages d'erreur, comme c'est le cas pour les bogues dans les extensions non malveillantes du noyau.