10 votes

Comment simuler le crash d'un processus/daemon sous OSX ?

Comment puis-je invoke / simulate process / daemon crash sur OSX et en conséquence de recevoir le rapport d'accident dans

/Bibliothèque/Logs/DiagnosticRepors

(par exemple opendirectoryd_2013-06-11-125032_macmini61.crash ) ?

J'ai essayé de forcer l'arrêt des démons à l'aide du moniteur d'activité mais je n'ai reçu aucun rapport. J'ai besoin de faire planter un système ou un processus tiers (NON développé par moi-même).

18voto

Martin R Points 105727

Vous pouvez forcer presque n'importe quel processus à se planter en lui envoyant un signal de "violation de segmentation".

Exemple : Trouver l'identifiant du processus "opendirectoryd" :

$ ps -ef | grep opendirectoryd
    0    15     1   0  9:14am ??         0:01.11 /usr/libexec/opendirectoryd
          ^-- process id

Envoyer un signal au processus :

$ sudo kill -SEGV 15

Cela met fin au processus et entraîne l'écriture d'un rapport de diagnostic, comme on peut le vérifier dans "system.log" :

Oct 31 09:17:17 hostname com.apple.launchd\[1\] (com.apple.opendirectoryd\[15\]): Job appears to have crashed: Segmentation fault: 11
Oct 31 09:17:20 hostname ReportCrash\[420\]: Saved crash report for opendirectoryd\[15\] version ??? (???) to /Library/Logs/DiagnosticReports/opendirectoryd\_2013-10-31-091720\_localhost.crash

Mais notez que le fait de planter délibérément des services système peut entraîner de graves problèmes (instabilité du système, perte de données, ...), vous devez donc savoir exactement ce que vous faites.

1voto

gaige Points 9669

À moins de trouver un bogue légitime et de le faire planter de cette façon, vous ne pouvez pas planter un démon de manière externe de telle sorte que cela entraîne un rapport de diagnostic. Toutes les fonctions de forçage d'arrêt sont exemptes de rapports de diagnostic puisqu'il s'agit de problèmes externes.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X