Section courante

A propos

Section administrative du site

crash

Vider
AIX Externe

Syntaxe

crash [-a ] [ -i IncludeFile ] [ SystemImageFile [ KernelFile ] ]

Paramètres

Nom Description
KernelFile Ce paramètre permet d'indiquer les définitions des symboles du noyau.
SystemImageFile Ce paramètre permet d'indiquer le fichier contenant l'image système.
-a Ce paramètre permet d'afficher un assortiment de structures de données sans interaction de l'utilisateur sur la sortie standard.
-i IncludeFile Ce paramètre permet de lire ce fichier d'inclusion et permet aux structures déclarées dans ce fichier d'être utilisées avec la sous-commande print. Vous pouvez fournir plusieurs options sur la ligne de commande avec ce drapeau.

Description

Cette commande permet d'afficher les images système afin d'examiner un vidage.

Remarques

Liste des sous-commandes

La commande crash reconnaît plusieurs sous-commandes. La commande crash présente un prompt > (signe supérieur à) lorsqu'elle est prête à interpréter les sous-commandes entrées à partir du poste de travail. Le format général de la sous-commande pour la commande crash est le suivant :

Subcommand [Flags] [StructuresToBeDisplayed]

Lorsqu'ils sont autorisés, les paramètres Flag modifient le format des données affichées. Si vous ne spécifiez pas les éléments de structure que vous souhaitez examiner, toutes les entrées valides sont affichées. En général, les sous-commandes effectuant des opérations d'entrées/sorties avec des adresses utilisent la notation hexadécimale. Étant donné que la commande crash ne traite que des processus léger du noyau, le mot processus léger, lorsqu'il est utilisé seul, sera utilisé pour désigner le processus léger du noyau dans la documentation sur le crash suivant. Le processus léger par défaut pour plusieurs sous-commandes est le processus actuel (le processus léger en cours d'exécution). Sur un système multiprocesseur, vous pouvez utiliser la sous-commande cpu pour changer le processeur actuel : le processus léger par défaut devient le processus léger en cours d'exécution sur le processeur sélectionné.

Les paramètres ProcessTableEntry et ThreadTableEntry sont utilisés dans de nombreuses sous-commandes pour indiquer respectivement un processus ou un processus léger. Ces paramètres sont simplement des nombres pour les index d'entrée de table pouvant être affichés à l'aide des sous-commandes proc et thread.

La plupart des sous-commandes reconnues par la commande crash ont des alias (formes abrégées donnant le même résultat). La commande crash reconnaît les sous-commandes suivantes :

Commande Description
alter [[-c] [-s] [-w] [-l] [L | ll] addr val Reconnu par l'alias de la sous-commande poke. Mettez la valeur val à l'adresse donnée addr. Attention : vous devez utiliser cette commande avec une extrême prudence. Des erreurs dans l'utilisation de cette commande peuvent provoquer des pannes du système.
Paramètre Description
-c Ce paramètre permet d'indiquer que val est un caractère. (1 octet) C'est la valeur par défaut.
-s Ce paramètre permet d'indiquer que val est un short. (2 octets)
-w Ce paramètre permet d'indiquer que val est un word. (4 octets)
-l Ce paramètre permet d'indiquer que val est un long. (4 octets)
-L | ll Ce paramètre permet d'indiquer que val est un long long. (8 octets)
alter [[-c] [-s] [-w] [-l]] [L | ll] addr origval=val Reconnu par l'alias de la sous-commande poke. Mettre la valeur à l'adresse donnée uniquement si origval est déjà entreposé à cette adresse. Attention : vous devez utiliser cette commande avec une extrême prudence. Des erreurs dans l'utilisation de cette commande peuvent provoquer des pannes du système. Remarque : Les drapeaux indiquent que val est un caractère, un court, un mot, un long ou L | ll pour entreposer des informations 64 bits.
buf [BufferHeaderNumber] ... Reconnu par les alias de sous-commandes bufhdr et hdr. Affiche les entêtes du tampon système. Le fichier buff.# est créé où l'extension de fichier variable # est le BufferHeaderNumber. Les données binaires sont écrites dans le fichier buff.#.
buffer [Format] [BufferHeaderNumber] ... Reconnu par l'alias de la sous-commande b. Affiche les données dans un tampon système selon le paramètre Format. Lorsque vous spécifiez un numéro d'entête de tampon, le tampon associé à cet entête de tampon est affiché. Si vous ne fournissez pas de paramètre Format, le Format précédent est utilisé. Les paramètres valides sont les formats décimal, octal, hexadécimal, caractère, octet, répertoire, i-node et écriture. Le format d'écriture crée un fichier dans le répertoire courant contenant les données du tampon.
calc expr Reconnu par l'alias de la sous-commande @. L'expression peut être n'importe quelle expression prise en charge par la commande bc, bien que la casse mixte soit prise en charge. Les valeurs sont en hexadécimal.
callout Reconnu par les alias de sous-commande c, call, calls, time, timeout,tout et trb. Affiche toutes les entrées de la trblist active (équivalent approximatif du cutoutable).
cm [vmmon | vmmoff] [ThreadTableEntry SegmentNumber] Modifie la carte des segments des pointeurs internes de la commande de blocage pour tout segment de processus léger de processus non paginé si vous spécifiez le numéro de fente de processus léger de processus et le numéro de segment. Cela permet à la sous-commande od d'afficher des données relatives au début du segment souhaité pour les processus léger autres que le processus léger actuel. La spécification de vmmon ou vmmoff permet de sélectionner si les adresses effectives comprises entre 0x70000000 et 0xa0000000 doivent être interprétées par la sous-commande od comme des références de données de noyau ou VMM. Lors de la saisie de la sous-commande cm sans aucun paramètre, elle réinitialise la carte des pointeurs internes.
conv num Reconnu par l'alias de la sous-commande %. Si num est hexadécimal, convertit en décimal, sinon convertit en hexadécimal. Les bases sont devinées en commençant par 0x pour hexadécimal ou base# pour les bases autres que décimales.
conv [-] [bdxo] num Reconnu par l'alias de la sous-commande %. Convertit num en binaire de base, décimal, hexadécimal ou octal spécifié. Les bases sont devinées en commençant par 0x pour hexadécimal ou base# pour les bases autres que décimales.
conv [-] [bdxo] [bdxo] num Reconnu par l'alias de la sous-commande %. Convertit num de la base spécifiée par le premier indicateur à la base spécifiée par le deuxième indicateur, binaire, décimal, hexadécimal ou octal.
cpu [ProcessorNumber] Si aucun paramètre n'est donné, la sous-commande cpu affiche le numéro du processeur actuellement sélectionné. Initialement, le processeur sélectionné est le processeur ayant causé le plantage du système (lors de l'exécution d'un crash sur un vidage), ou le processeur 0 (lors de l'exécution sur un système en cours d'exécution). Si le paramètre ProcessorNumber est donné, la sous-commande cpu sélectionne le processeur spécifié comme processeur actuel. Par extension, cela sélectionne le processus léger courant (le processus léger en cours sur le processeur sélectionné). La numérotation des processeurs commence à partir de zéro.
dblock Address Reconnu par l'alias de la sous-commande dblk. La sous-commande dblock affiche les entêtes des blocs de données des flux alloués. Le paramètre Adresse est obligatoire. Si l'adresse n'est pas fournie, cette sous-commande affiche un message d'erreur indiquant que l'adresse est requise. Voir le fichier d'entête /usr/include/sys/stream.h pour la définition de la structure datab. Les descriptions freep et db_size ne sont pas incluses dans /usr/include/sys/stream.h. Ces membres de la structure et leurs descriptions sont :
Paramètre Description
freep Ce paramètre permet d'indiquer l'adresse du pointeur libre.
db_size Ce paramètre permet d'indiquer la taille du bloc de données.
Aucune vérification n'est effectuée sur l'adresse transmise en tant que paramètre requis. La sous-commande dblock acceptera n'importe quelle adresse. Il appartient à l'utilisateur de s'assurer qu'une adresse valide est indiquée. Pour déterminer une adresse valide, vous devrez exécuter la sous-commande mblock. À partir de la sortie de la sous-commande mblock, sélectionnez une adresse de bloc de données non nulle sous l'entête de colonne, DATABLOCK.
decode instr Décoder le mot d'instruction donné. Le paramètre instr est spécifié comme une valeur hexadécimale.
devsw Afficher le tableau des commutateurs de périphérique.
devsw major Affiche la structure de commutation de périphérique pour le périphérique avec le numéro majeur donné.
dlock[ThreadIdentifier | -p [ProcessorNumber] ] Affiche les informations d'analyse des interblocages sur tous les types de verrous (simples, complexes et verrous). La sous-commande dlock recherche les interblocages à partir d'un point de départ donné. Si ThreadIdentifier est donné, le processus léger correspondant est le point de départ. Si -p est donné sans ProcessorNumber, le point de départ est le processus léger en cours d'exécution sur le processeur actuel. Si «-p ProcessorNumber» est donné, le processus léger du noyau en cours d'exécution sur le processeur spécifié est le point de départ. Si aucun paramètre n'est fourni, dlock recherche les interblocages parmi tous les processus léger de tous les processeurs. La première ligne de sortie donne des informations sur le processus léger de départ, y compris le verrou bloquant le processus léger du noyau, et une trace de pile montrant les appels de fonction ayant conduit à la demande de verrouillage bloquant. Chaque ligne suivante affiche le verrou détenu par le processus léger bloqué de la ligne précédente et identifie le processus léger ou le gestionnaire d'interruption étant par ces verrous. Si les informations requises pour une analyse complète ne sont pas disponibles (pagination), un affichage abrégé s'affiche ; dans ce cas, examinez la trace de la pile pour localiser les opérations de verrouillage étant à l'origine du blocage. L'affichage s'arrête lorsqu'un verrou est rencontré pour la deuxième fois, ou qu'aucun verrou bloquant n'est trouvé pour le processus léger actuel.
dmodsw Ce paramètre permet d'afficher la table de commutation des pilotes de flux de données. Les informations affichées sont contenues dans une structure interne. Les membres de cette structure interne et leurs descriptions sont :
Membre Description
address Adresse de dmodsw.
d_next Pointeur vers le pilote suivant dans la liste.
d_prev Pointeur vers le pilote précédent dans la liste.
d_name Nom du pilote.
d_flags Drapeaux spécifiés au moment de la configuration.
d_sqh Pointeur vers la file d'attente de synchronisation pour la synchronisation au niveau du pilote.
d_str Pointeur vers streamtab associé au pilote.
d_sq_level Niveau de synchronisation spécifié lors de la configuration.
d_refcnt Nombre de comptes ouverts ou poussés.
d_major Numéro majeur d'un pilote.
Le membre de structure flags, s'il est défini, est basé sur l'une des valeurs suivantes :
#define Valeur Description
F_MODSW_OLD_OPEN 0x1 Prend en charge les paramètres d'ouverture/fermeture à l'ancienne (V.3)
F_MODSW_QSAFETY 0x2 Le module nécessite des rappels de dépassement de délai/bufcall sécurisés
F_MODSW_MPSAFE 0x4 Les pilotes non MP Safe ont besoin d'être canalisés.
ds [DataAddress]... Trouve les symboles de données les plus proches des adresses données.
du [ThreadTableEntry] Affiche un vidage hexadécimal et ASCII combiné de la structure uthread du processus léger spécifié et de la structure utilisateur du processus possédant le processus léger. Si les données ne sont pas disponibles (pagination), un message s'affiche. La valeur par défaut est le processus léger actuel.
dump Affiche le nom de chaque composante pour lequel des données sont présentes. Après avoir sélectionné un nom de composante dans la liste affichée, le programme crash charge et exécute la routine de formatage associée contenue dans le répertoire /usr/lib/ras/dmprtns. S'il existe plusieurs zones de données pour la composante sélectionné, la routine de formatage affiche une liste des zones de données et vous permet d'en sélectionner une. La commande crash affiche alors la zone de données sélectionnée. Vous pouvez entrer la sous-commande quit pour revenir à la liste précédemment affichée et faire une autre sélection ou entrer la sous-commande quit une deuxième fois pour quitter la boucle de la sous-commande dump.
errpt [ count] Affiche les messages dans le journal de bord des erreurs. Count est le nombre de messages à afficher ayant déjà été lus par le processus errdemon. (La valeur par défaut est 3 messages.) errpt affiche toujours tous les messages n'ayant pas encore été lus par le processus errdemon.
file [FileTableEntry] ... Reconnu par les alias de sous-commande files et f. Affiche la table des fichiers. À moins que des entrées de fichier spécifiques ne soient demandées, seules celles dont le nombre de références est différent de zéro sont affichées.
find [-u] [-s] [-p slot] [-c context] [-a alignment] pattern Reconnu par l'alias de la sous-commande x. Recherche dans l'espace utilisateur pour un modèle donné. La valeur par défaut consiste à rechercher les zones de sauvegarde GPR dans les zones mstsave se trouvant à la fois sur la chaîne de caractères de zone de sauvegarde actuelle (CSA) et dans chaque zone de processus léger pour chaque processus léger.
Paramètre Description
-u Ce paramètre permet de rechercher tous les segments privés de processus, (Stack, Uarea,...)
-s Ce paramètre permet de Rechercher tous les segments privés de processus à partir du pointeur de pile actuel.
-c context Ce paramètre permet d'indiquer le nombre d'octets de contexte à afficher sur une correspondance.
-a alignment Ce paramètre permet d'indiquer l'alignement des octets pour le motif. La valeur par défaut est 4.
-p slot Ce paramètre permet de rechercher uniquement le processus spécifié. La valeur par défaut consiste à rechercher tous les processus. Attention : L'utilisation de cette commande sur un système en cours d'exécution peut provoquer des pannes du système.
Règles pour le pattern : Le pattern est un modèle de recherche de n'importe quelle longueur arbitraire contenant soit un nombre hexadécimal, soit une chaîne de caractères. Pour spécifier un modèle hexadécimal, tapez simplement les chiffres hexadécimaux. Les chiffres «Don't care» peuvent être représentés par le caractère x. Pour spécifier un modèle de chaîne de caractères, placez le modèle entre guillemets doubles. Les caractères 'Don't care' peuvent être représentés avec la séquence \x.
find -k [-c context] [-a alignment] pattern [start[end]] Reconnu par l'alias de la sous-commande x. Recherchez les segments du noyau. L'intervalle par défaut est l'ensemble de chaque segment du noyau.
Paramètre Description
-c context Ce paramètre permet d'indiquer le nombre d'octets de contexte à afficher sur une correspondance.
-a alignment Ce paramètre permet d'indiquer l'alignement des octets pour le motif. La valeur par défaut est 4.
find -b branch_addr [start_addr[end_addr]] Reconnu par l'alias de la sous-commande x. Recherchez une succursale à l'adresse indiquée. L'intervalle par défaut est l'ensemble de chaque segment du noyau.
find -m [-a addr] [-t type] [-c] [-i] [start[end]] Reconnu par l'alias de la sous-commande x. Recherchez les choses ressemblant à des mbufs. L'intervalle de recherche par défaut est le tas de mémoire réseau.
Paramètre Description
-a Ce paramètre permet de rechercher les mbufs pointant vers cette adresse de l'unité d'allocation.
-t type Ce paramètre permet de ne rechercher que ce type de mbuf.
-c Ce paramètre permet de rechercher uniquement des unités d'allocations.
-i Ce paramètre permet d'ignorer les vérifications d'intégrité de longueur.
find -v [-f] wordval [start[end]] Reconnu par l'alias de la sous-commande x. Recherchez le premier mot ne correspondant pas à la valeur donnée. La valeur par défaut consiste à rechercher les segments du noyau.
Paramètre Description
-f Ce paramètre permet de forcer l'analyse à se poursuivre lorsqu'une région n'étant pas dans le vidage est analysée.
find -U seg_id Reconnu par l'alias de la sous-commande x. Recherchez les processus dont les registres de segment contiennent l'identificateur de segment donné.
fmodsw Affiche la table de commutation des modules de flux. Les informations affichées sont contenues dans une structure interne. Les membres de cette structure interne et leurs définitions sont :
Membres Description
address Adresse de fmodsw.
d_next Pointeur vers le module suivant dans la liste.
d_prev Pointeur vers le module précédent dans la liste.
d_name Nom du module.
d_flags Drapeaux spécifiés au moment de la configuration.
d_sqh Pointeur vers la file d'attente de synchronisation pour la synchronisation au niveau du module.
d_str Pointeur vers streamtab associé au module.
d_sq_level Niveau de synchronisation spécifié lors de la configuration.
d_refcnt Nombre de comptes ouverts ou poussés.
d_major -1.
Le membre de structure flags, s'il est défini, est basé sur l'une des valeurs suivantes :
#define Valeur Description
F_MODSW_OLD_OPEN 0x1 Prend en charge les paramètres d'ouverture/fermeture à l'ancienne (V.3)
F_MODSW_QSAFETY 0x2 Le module nécessite des rappels de dépassement de délai/bufcall sécurisés.
F_MODSW_MPSAFE 0x4 Les pilotes non MP Safe ont besoin d'être canalisés
fs [ThreadTableEntry] Trace une pile de noyau pour le processus léger spécifié par le numéro d'emplacement de processus léger. Affiche les sous-programmes appelés avec un vidage hexadécimal du cadre de pile pour le sous-programme contenant les paramètres passés au sous-programme. Le processus léger par défaut est le processus léger en cours d'exécution. Cette sous-commande ne fonctionnera pas sur le processus léger actuel ou sur un système en cours d'exécution car elle utilise le traçage de pile ; cependant, cela fonctionne sur une image de vidage.
help Reconnu par l'alias «?» de sous-commande. Affiche une liste de commandes avec de courtes descriptions.
help cmd... Reconnu par l'alias «?» de sous-commande. Affiche une longue description de la commande spécifiée.
help /regex... Reconnu par l'alias «?» de sous-commande. Affichez les descriptions longues correspondant à l'expression régulière étendue spécifiée, insensible à la casse.
hide symbol... Masquez le symbole spécifié des commandes de plantage convertissant les adresses en symboles et en déplacements. La principale raison de cette capacité est de masquer les symboles pouvant apparaître au milieu d'une fonction. Cela se produit dans les routines d'assemblage. Voir la sous-commande unhide.
hide Afficher tous les symboles cachés. Voir la sous-commande unhide.
id[*...] addr [units] Décodage d'instructions. Équivalent à od avec le format d'instruction. Les unités sont mesurées en nombre d'instructions.
id[*...] symname [units]
inode [-] [ MAJ MIN INUMB ] ... Reconnu par les alias de sous-commandes ino et i. Affiche la table i-node et les adresses des blocs de données i-node. Un i-node spécifique peut être affiché en spécifiant le numéro de périphérique majeur et mineur du périphérique où réside le i-node et le numéro de l'i-node. L'i-node ne sera affiché que s'il est actuellement sur la liste de hachage du système.
kfp[FramePointer] ... Reconnu par les alias de sous-commandes fp et rl. Si la sous-commande kfp est entrée sans paramètres, elle affiche à l'écran la dernière adresse du pointeur de trame du noyau ayant été définie à l'aide de kfp. Si une adresse de pointeur de trame est fournie, elle définit le pointeur de trame du noyau sur la nouvelle adresse. Cette sous-commande est utilisée conjointement avec le drapeau -r de la sous-commande trace.
knlist[Symbol] ... Affiche les adresses de tous les noms de symboles donnés. Si le symbole n'est pas trouvé, un message de non-correspondance s'affiche à l'écran. Cette sous-commande lit la liste d'exportation du noyau pour le système en cours d'exécution ou une image de vidage.
le [ModuleAddress | Keyword] Affiche les entrées de la liste de chargement du noyau. Si vous spécifiez une adresse dans une extension de noyau, l'entrée de liste de chargement correspondante s'affiche. Si vous spécifiez un nom ou une partie du nom d'une extension de noyau, les entrées de la liste de chargement correspondant au nom sont affichées. Tenter d'afficher une entrée de chargeur paginée produit un message d'erreur.
link addr num [next_offset [end_val] Reconnu par l'alias de la sous-commande ll. Suit la liste chaînée commençant à l'adresse. Afficher num mots pour chaque entrée. next_offset est le déplacement en mots du prochain pointeur, la valeur par défaut est 0. end_val est la valeur du prochain pointeur terminant la liste, la valeur par défaut est 0.
linkblk Reconnu par l'alias de la sous-commande lblk. La sous-commande linkblk affiche la table des flux linkblk. Si aucune structure linkblk n'est trouvée sur le système, la sous-commande linkblk affiche un message indiquant qu'aucune structure n'est trouvée.
lock Reconnu par l'alias de la sous-commande lock. Affiche l'état des verrous globaux du noyau ainsi que les processus léger en attente d'événements et de verrous.
lock [-clsq] addr|symbol... Reconnu par l'alias de la sous-commande lock. Afficher le verrou à l'adresse ou l'adresse spécifiée par le symbole. Le format par défaut est celui d'un Simple_lock.
Paramètre Description
-c Ce paramètre permet d'être afficher en tant que Complex_lock.
-l Ce paramètre permet d'être afficher en tant que lock_t.
-s Ce paramètre permet d'être afficher en tant que Simple_lock. C'est la valeur par défaut.
-q Ce paramètre permet de supprimer les données d'instrumentation.
Bits d'état :
Bits Nom long
I INTERLOCK
W WAITING
WW WANT_WRITE (Complex_lock)
RD READ_MODE(Complex_lock)
L LOCKBIT (Simple_lock)
S INSTR_ON (Simple_lock)
mblock Address Reconnu par l'alias de la sous-commande mblk. La sous-commande mblock affiche les entêtes de bloc de message de flux alloués. Le paramètre Address est obligatoire. Si l'adresse n'est pas fournie, la sous-commande affiche un message d'erreur indiquant que l'adresse est requise. Il y a très peu de vérifications effectuées sur l'adresse transmise en tant que paramètre requis. La sous-commande mblock accepte toute adresse tombant sur une limite de 128 octets. Il appartient à l'utilisateur de s'assurer qu'une adresse valide est indiquée. Pour déterminer une adresse valide, exécutez la sous-commande queue. À partir de la sortie de la sous-commande queue, vous devrez sélectionner une adresse différente de zéro dans la tête de la file d'attente de messages, sous l'entête de colonne HEAD, pour une file d'attente de lecture ou une file d'attente d'écriture.
mbuf Address Affiche les structures mbuf du système à l'adresse spécifiée.
mst [-f] [Address] ... Affiche la partie mstsave de la structure uthread aux adresses spécifiées. Si vous ne spécifiez pas d'adresse, il affiche toutes les entrées mstsave de la chaîne CSA, à l'exception de la première. Si vous spécifiez le drapeau -f, la première zone mstsave de la chaîne CSA s'affiche.
ndb Affiche les structures de données du noyau réseau pour un système en cours d'exécution ou un vidage système. La sous-commande ndb, abréviation de débogueur réseau, prend en charge les options suivantes :
Paramètre Description
? Fournit des informations d'aide de premier niveau.
help Fournit des informations d'aide supplémentaires.
cb [Addr] Affiche les TCB. La valeur par défaut est HEAD TCB.
udb [Addr] Affiche les UDB. La valeur par défaut est HEAD UDB.
socketsAddr Affiche les sockets à l'adresse indiquée.
mbuf [Addr] Affiche le mbuf à l'adresse spécifiée.
ifnet [Addr] Affiche les structures ifnet à l'adresse spécifiée.
quit Arrête l'option en cours d'exécution.
xit Quitte le sous-menu ndb.
netm Affiche l'enregistrement net_malloc_police le plus récent. Remarque : Nécessite que le système de détection de superposition de mémoire (MODS) soit activé ou que l'option réseau net_malloc_police soit activée.
netm -a Affiche tous les enregistrements, en commençant par le plus récent. Remarque : Nécessite que le MODS soit activé ou que l'option réseau net_malloc_police soit activée.
netm addr Affiche les enregistrements dont les champs d'adresse ou d'appelant correspondent à l'adresse donnée. Remarque : Nécessite que le MODS soit activé ou que l'option réseau net_malloc_police soit activée.
netstat Équivalent à la version en ligne de commande de la commande netstat.
nm[Symbol] ... Affiche la valeur et le type de symbole tels qu'ils se trouvent dans KernelFile.
od [*...] [SymbolName | Address] [Count] [Format] Reconnu par l'alias de la sous-commande rd. Vide le nombre de valeurs de données du paramètre Count à partir de la valeur de symbole, ou l'adresse donnée en fonction du paramètre Format. Les formats possibles sont les formats ascii, octal, longoct,décimal, longdec, caractère, hexadécimal, octet et instruction. Le format ASCII est similaire au format hexadécimal mais possède une barre latérale ASCII. Le format d'instruction désassemble le nombre d'instructions spécifié. Le mot "instruction" est abrégé par la lettre majuscule "I". La sous-commande id est un alias pour od...I. Vous pouvez déréférencer un symbole ou une adresse en le préfixant d'un ou plusieurs astérisques.
ppd [ProcessorNumber *] Affiche les structures de zone de données par processeur (PPDA) pour le processeur spécifié. Si aucun processeur n'est spécifié, le processeur actuel sélectionné par la sous-commande cpu est utilisé. Si le paramètre astérisque est donné, le PPDA de chaque processeur activé est affiché.
prall Équivaut à crash -a à partir de la ligne de commande.
print [Type] Address Reconnu par les alias de sous-commande pr, str ou struct. Est-ce que l'impression de structures de style dbx. L'option -i doit être donnée sur la ligne de commande pour utiliser cette fonctionnalité. Type est le nom de la structure à afficher.
print -d type Reconnu par les alias de sous-commande pr, str ou struct. Définit le type par défaut pour les commandes print suivantes à saisir.
print -l offset|name [-e end_val] [type] address Reconnu par les alias de sous-commande pr, str ou struct. Affiche une liste chaînée, commençant à l'adresse en utilisant le déplacement ou le nom du membre de la structure comme emplacement du pointeur suivant. Arrêtez-vous lorsque la prochaine valeur de end_val est égale. La valeur par défaut end_val est 0.
proc [-] [-r] [ProcessTableEntry] ... Reconnu par les alias de sous-commandes ps et p. Affiche la table des processus, y compris le nombre de processus légers (le nombre de processus légers dans le processus) et l'état de chaque processus. Le drapeau -r affiche uniquement les processus exécutables. Le drapeau - (moins) affiche une liste plus longue de la table de processus.
qrun Affiche la liste des files d'attente de flux planifiés. Si aucune file d'attente n'est trouvée pour la planification, la sous-commande qrun affiche un message indiquant qu'il n'y a aucune file d'attente planifiée pour le service.
queue [Address] Reconnu par l'alias de la sous-commande que. La sous-commande queue affiche la file d'attente STREAMS. Si le paramètre facultatif Address n'est pas fourni, crash affichera des informations pour toutes les files d'attente d'écriture disponibles. Si vous souhaitez voir les informations entreposées pour une file d'attente de lecture, exécutez la sous-commande queue avec l'adresse de file d'attente de lecture spécifiée comme paramètre d'adresse. Lorsque vous exécutez la sous-commande queue avec le paramètre Address, les entêtes de colonne ne font pas la distinction entre la file d'attente de lecture et la file d'attente d'écriture. Une adresse de file d'attente sera affichée sous l'entête de colonne, QUEUE et l'autre file d'attente de la paire sera affichée sous l'entête de colonne, OTHERQ. La file d'attente d'écriture aura une adresse numériquement plus élevée que la file d'attente de lecture.
quit Reconnu par l'alias de la sous-commande q. Quitte la commande crash.
search[-sn] name Recherchez le nom dans la table des symboles.
Paramètre Description
-s Ce paramètre permet d'afficher les symboles correspondant au nom au format nm. Affiche également l'entrée de la table des symboles pour le dernier symbole trouvé.
-n Ce paramètre permet d'empêcher la recherche d'examiner les extensions du noyau.
search[-n] addr Recherchez le symbole avec la plus grande valeur inférieure ou égale à addr.
Paramètre Description
-n Ce paramètre permet d'empêcher la recherche d'examiner les extensions du noyau.
segst64 [-p pslot | -t tslot] [-l limit [-s segflag[:value][, segflag[:value]]...] [-n [start_esid [end_esid]] Reconnu par les alias de sous-commande adspace, as et sr. Affiche les informations d'état de segmentation pour un processus 64 bits. L'état de segmentation du processus en cours s'affiche à moins que les drapeaux -p ou -t ne soient spécifiés. Toutes les entrées d'état de segmentation s'affichent à moins qu'elles ne soient limitées par le drapeau -l ou l'esid de début, start_esid et éventuellement la fin esid, end_esid. La spécification du drapeau -s limite l'affichage aux seules entrées d'état de segmentation correspondant aux drapeaux de segmentation donnés, aux types de modèles correspondants, ainsi qu'à leurs valeurs correspondantes. Le drapeau -l limite l'affichage à un nombre maximum d'entrées. Le drapeau -n affiche également les segnodes pour les données affichées. Les entrées Segnode ne sont pas incluses dans le décompte lors de la limitation des données avec -l.
Paramètre Description
-p pslot Ce paramètre permet d'indiquer le numéro d'emplacement de processus.
-t tslot Ce paramètre permet d'indiquer le numéro d'emplacement de processus léger.
-s segflag:[value] Ce paramètre permet d'indiquer la limite d'affichage des entrées d'état de segmentation correspondant à ce drapeau de segmentation et à cette valeur.
-l limit Ce paramètre permet d'indiquer le nombre d'entrées à afficher.
-n Ce paramètre permet d'afficher les uadnodes pour les données affichées.
select Reconnu par l'alias de la sous-commande sel. Affiche tous les blocs de contrôle sélectionnés.
select p proc_slot Reconnu par l'alias de la sous-commande sel. Affiche les blocs de contrôle sélectionnés pour le processus dans l'emplacement spécifié. Remarque : le drapeau p n'est pas préfixé par un -.
select dev_id unique_id Reconnu par l'alias de la sous-commande sel. Affiche les blocs de contrôle sélectionnés correspondant au périphérique spécifié et aux identificateurs uniques.
set Affichez les variables et les valeurs de crash.
set allhex [no] Provoque un plantage pour n'utiliser que des valeurs hexadécimales à la fois pour l'entrée et la sortie, par opposition à un mélange d'hexadécimal et de décimal. Spécifiez no pour désactiver cette option.
set edit [emacs|gmacs|none|vi] Définit le mode d'édition de la ligne de commande.
set fpregs [yes|no|auto] Spécifier si les registres à virgule flottante doivent être affichés ou non. Si auto est utilisé, la variable fpeu dans la zone mstsave détermine quand afficher les registres.
set idarch [ppc|pwr|auto] Définir l'architecture de décodage des instructions. auto détecte l'architecture du système.
set logfile [filename] Définissez le fichier journal de bord sur le nom donné ou désactivez la journalisation si aucun nom n'est donné.
set loglevel [0|1|2] Définissez la granularité de la journalisation sur :
Valeur Description
0 Les commandes grossières uniquement seront enregistrées.
1 Les commandes moyennes et la sortie vers le terminal seront enregistrées.
2 Les commandes fines et toutes les sorties seront enregistrées, y compris redirigées.
set prtype [type] Définissez le type d'impression par défaut. Cela équivaut à «print -d type».
set quiet [no] Supprime les messages d'erreur concernant les processus léger et les processus manquants ou échangés. Spécifiez no pour désactiver cette option.
socket[-] ... Reconnu par l'alias de la sous-commande sock. Affiche les structures de socket système. Si le drapeau - (signe moins) est utilisé, les tampons de socket seront également affichés.
sr64 [-p pslot | -t tslot] [-l limit [-n [start_esid [end_esid]] Reconnu par les alias de sous-commandes segst et seg. Affiche les identificateurs de segment effectifs (esid) et leurs segments correspondants pour un processus 64 bits. Si vous ne spécifiez pas les drapeaux -p ou -t, sr64 utilise le processus en cours. Sinon, il utilise pslot comme numéro d'emplacement de processus pour le processus souhaité, ou tslot comme numéro d'emplacement de processus léger d'un processus léger contenu dans le processus souhaité. Il répertorie toutes les entrées dans adspace à moins qu'un esid de départ, start_esid et une éventuelle fin esid, end_esid ne soient donnés. De plus, il arrête la liste si le nombre d'entrées spécifié par le drapeau -l a été affiché. Étant donné que adspace_t contient 16 entrées, chaque ligne se compose d'un esid, de sa valeur correspondante et des 3 valeurs suivantes dans le adspace_t. Le drapeau -n affiche également les uadnodes pour les données affichées. Les entrées uadnode ne sont pas incluses dans le décompte lors de la limitation des données avec -l.
Paramètre Description
-p pslot Ce paramètre permet d'indiquer le numéro d'emplacement de processus.
-t tslot Ce paramètre permet d'indiquer le numéro d'emplacement de processus léger.
-l limit Ce paramètre permet d'indiquer le nombre d'entrées à afficher.
-n Affiche les uadnodes pour les données affichées.
stack[ThreadTableEntry ] ... Reconnu par les alias de sous-commande stk, s, kernel et k. Affiche un vidage de la pile du noyau du processus léger identifié par ThreadTableEntry. Si vous ne spécifiez pas d'entrée, des informations sur le dernier processus léger du noyau en cours d'exécution s'affichent. Vous ne pouvez pas tracer la pile du processus léger de noyau actuel sur un système en cours d'exécution.
stat Affiche les statistiques trouvées dans le vidage. Ces statistiques incluent le message de panique (si une panique s'est produite), l'heure du plantage, le nom du système et si le MODS (appelé ici débogage xmalloc) est activé.
status [ProcessorNumber] Affiche une description du processus léger du noyau planifié sur le processeur désigné. Si aucun processeur n'est spécifié, la sous-commande status affiche des informations pour tous les processeurs. Les informations affichées incluent le numéro de processeur, l'identificateur de processus léger, l'emplacement de table du processus léger, l'identificateur de processus, l'emplacement de table de processus et le nom de processus.
stream Affiche la table d'entête du flux de données. Les informations affichées sont contenues dans une structure interne. Les membres de cette structure interne sont :
Membre Description
address Adresse de la tête de flux de données.
wq Adresse de la file d'attente d'écriture des flux de données.
dev Numéro de périphérique associé au flux de données.
read_error Erreur de lecture sur le flux de données.
write_error Erreur d'écriture sur le flux de données.
flags Valeurs des drapeaux de tête de flux de données.
push_cnt Nombre de modules poussés sur le flux de données.
wroff Écrire du déplacement pour ajouter M_DATA
ioc_id Identificateur de la demande M_IOCTL en attente
pollq Liste des sondes actifs
sigsq Liste des M_SETSIG actifs
Le membre de structure flags, s'il est défini, est basé sur des combinaisons des valeurs suivantes :
#define Valeur Description
F_STH_READ_ERROR 0x0001 M_ERROR avec erreur de lecture reçue, échouer tous les appels de lecture.
F_STH_WRITE_ERROR 0x0002 M_ERROR avec erreur d'écriture reçue, échec de toutes les écritures.
F_STH_HANGUP 0x0004 M_HANGUP reçu, plus de données
F_STH_NDELON 0x0008 Faire la sémantique TTY pour la gestion ONDELAY
F_STH_ISATTY 0x0010 Ce flux de données agit comme un terminal
F_STH_MREADON 0x0020 Générer M_READ messages
F_STH_TOSTOP 0x0040 Interdire les écritures en arrière-plan (pour le contrôle des tâches)
F_STH_PIPE 0x0080 Le flux est une extrémité d'un tuyau ou fifo.
F_STH_WPIPE 0x0100 Le flux de données est le côté "écriture" d'un tube.
F_STH_FIFO 0x0200 Le flux de données est un fifo.
F_STH_LINKED 0x040 Le flux de données a un ou plusieurs flux de données inférieurs liés.
F_STH_CTTY 0x0800 TTY de contrôle de flux de données.
F_STH_CLOSED 0x4000 Le flux de données a été fermé et devrait être libéré.
F_STH_CLOSING 0x8000 Activement sur la descente.
symptom[-e] Affiche la chaîne de symptôme pour un vidage. Il n'est pas valide sur un système en cours d'exécution. L'option -e facultative créera une entrée de journal de bord d'erreurs contenant la chaîne de symptôme et n'est normalement utilisée que par le système et n'est pas entrée manuellement. La chaîne de symptômes peut être utilisée pour identifier les problèmes en double.
tcb [ThreadTableEntry] ... Affiche la partie mstsave des structures utilisateur des processus léger nommés. Si vous ne spécifiez pas d'entrée, des informations sur le dernier processus léger en cours d'exécution s'affichent. Cette sous-commande remplace la sous-commande pcb.
thread [-] [-r] [-p ProcessTableEntry | -a Address | ThreadTableEntry] Reconnu par le e alias de sous-commande. Affiche le contenu de la table des processus léger. Le drapeau - (moins) affiche une liste plus longue de la table des processus léger. Le drapeau -r affiche uniquement les processus léger exécutables. Le drapeau -p affiche uniquement les processus léger appartenant au processus identifié par ProcessTableEntry. Le drapeau -a affiche la structure du processus léger à l'adresse. Si ThreadTableEntry est fourni, seul le processus léger correspondant est affiché.
trace [-r | -m [-f]] [-k | -s] [-r] [ThreadTableEntry ] ... Reconnu par l'alias de la sous-commande t. Affiche une trace de pile de noyau du processus léger identifié par ThreadTableEntry. Si vous ne spécifiez pas d'entrée de table de processus léger, des informations sur le processus léger actuel s'affichent. Lors de l'utilisation du drapeau -k, les adresses de trame de pile indiquent la trame de pile contenant la valeur du registre de lien pointant vers la fonction étant affichée. Le drapeau -m permet à trace d'afficher le retraçage associé à chaque zone mstsave sur la chaîne de zone de sauvegarde actuelle (CSA), à l'exception de la première. Pour voir une trace de la première zone mstsave, spécifiez le drapeau -f. Lorsque les drapeaux -m ou -k sont utilisés, la trace peut également afficher le LR (registre de lien) et le pointeur de trame de pile supérieure. Ceux-ci ne font pas partie de la trace de la pile et sont donc marqués d'un astérisque. Le drapeau -r fera que trace utilisera le pointeur de trame du noyau configuré par la sous-commande kfp comme adresse de départ au lieu du pointeur de trame trouvé dans le SystemImageFile. La sous-commande trace s'arrêtera et une erreur sera signalée si un pointeur de trame non valide est rencontré. Le drapeau -s affiche les informations de registre enregistrées pour chaque frame de pile. Sans drapeaux, trace affiche les informations d'adresse.
ts[TextAddress] ... Recherche les symboles textuels les plus proches des adresses données.
tty[ d ] [ l] [ e ] [ Name | Major [ Minor ] ] Affiche les structures tty. Si aucun paramètre n'est spécifié, une courte liste de tous les terminaux ouverts s'affiche. Les terminaux sélectionnés peuvent être affichés en spécifiant le nom du terminal, tel que tty1, ou un numéro majeur avec un numéro mineur facultatif. Les drapeaux modifient les informations affichées : le drapeau d affiche les informations du conducteur ; le drapeau l affiche des informations sur la discipline de la ligne ; et le drapeau e affiche des informations pour chaque module ou pilote présent dans le flux pour les lignes sélectionnées.
unhide symbol... Afficher le symbole spécifié. Voir la sous-commande hide.
unhide Afficher tous les symboles cachés. Voir la sous-commande hide.
user [-s] [ThreadTableEntry ] ... Reconnu par les alias de sous-commande uarea, u_area et u. Affiche la structure uthread et la structure utilisateur associée du processus léger identifié par ThreadTableEntry. Si vous ne spécifiez pas l'entrée, les informations sur le dernier processus léger en cours d'exécution s'affichent. Le drapeau -s limite la sortie aux informations du registre de segment.
var Reconnu par les alias de sous-commande tunables, tunable, tune et v. Affiche les paramètres système réglables.
vfs [-] [VfsSlotNumber] Reconnu par les alias de sous-commande mount, mnt et m. Le vfs utilise le VfsSlotNumber spécifié pour afficher une entrée dans la table vfs. Utilisez le drapeau - pour afficher les noeuds virtuels associés au vfs. La valeur par défaut affiche l'intégralité de la table vfs. Voir le fichier d'entête sys/vfs.h pour les définitions de structure.
vnode [VNodeAddress] Affiche les données à l'adresse v-node spécifiée en tant que v-node. L'adresse doit être spécifiée en notation hexadécimale. La valeur par défaut est d'afficher toutes les structures v-node. Voir le fichier d'entête sys/vfs.h pour les définitions de structure.
which symbol | addr Reconnu par l'alias de la sous-commande wf. Affiche le nom du fichier source du noyau contenant le symbole ou l'adresse.
xmalloc Reconnu par les alias de sous-commande xm et malloc. Affiche des informations concernant l'allocation et l'utilisation de la mémoire du noyau (le pinned_heap et le kernel_heap).
xmalloc [addr] Reconnu par les alias de sous-commande xm et malloc. Affiche des informations xmalloc sur addr. Si addr n'est pas spécifié, crash tente de trouver les adresses impliquées dans le crash du système causé par le MODS.
xmalloc -s [addr] Reconnu par les alias de sous-commande xm et malloc. Affiche les enregistrements d'allocation de débogage xmalloc associés à addr. Remarque : Le drapeau -s nécessite que le système de détection de superposition de mémoire (MODS) soit activé.
xmalloc -h [addr] Reconnu par les alias de sous-commande xm et malloc. Affiche les enregistrements de liste libre MODS xmalloc associés à addr. Remarque : Le drapeau -h nécessite que le système de détection de superposition de mémoire (MODS) soit activé.
xmalloc [-l] -f Reconnu par les alias de sous-commande xm et malloc. Affiche les enregistrements d'allocation sur la liste des libres, du plus ancien au plus récent. Le drapeau -l affiche une longue liste. Remarque : Le drapeau -f nécessite que le système de détection de recouvrement de mémoire (MODS) soit activé.
xmalloc [-l] -a Reconnu par les alias de sous-commande xm et malloc. Affiche la table des enregistrements d'allocation. Le drapeau -l affiche une longue liste. Remarque : Le drapeau -a nécessite que le système de détection de recouvrement de mémoire (MODS) ait été activé.
xmalloc [-l] -p pageno Reconnu par les alias de sous-commande xm et malloc. Affiche des informations sur le descripteur de page pour le numéro de page. Le drapeau -l affiche des informations supplémentaires.
xmalloc -d [addr] Reconnu par les alias de sous-commande xm et malloc. Affiche la chaîne de hachage d'enregistrement d'allocation de débogage xmalloc associée à la valeur de hachage d'enregistrement pour addr.
xmalloc -v Reconnu par les alias de sous-commande xm et malloc. Vérifiez les bandes de fin d'allocation des enregistrements alloués et les modèles de remplissage libre des enregistrements libérés. Remarque : Le drapeau -v nécessite que le système de détection de recouvrement de mémoire (MODS) soit activé.
! Exécute les commandes d'interpréteur de commande.
? Affiche le résumé des commandes crash.

Fichiers associés

Fichier Description
/usr/sbin/crash Ce fichier contient la commande crash.
/dev/mem Ce fichier contient l'image système par défaut.
/unix Ce fichier contient le noyau par défaut.
/usr/include/sys/*.h Ces fichiers contiennent les entêtes pour les informations de table et de structure.

Exemples

L'exemple suivant permet d'appeler la commande crash avec l'image système par défaut et les fichiers image du noyau :

crash

L'exemple suivant permet avec la commande crash de renvoyer une prompt > et attend que vous saisissiez une sous-commande. Pour appeler la commande crash avec le fichier image système et le fichier de noyau UNIX, saisissez :

crash sysimage /unix

Le programme crash renvoie un prompt > et attend que vous saisissiez une sous-commande. Les exemples suivants montrent des exemples d'utilisation des sous-commandes crash. Pour écrire le tampon 0 dans le fichier buff.0 au format binaire, saisissez :

buffer write 0

La commande crash renvoie un prompt > et attend que vous saisissiez une sous-commande. Pour définir la carte des segments sur le filetage numéro 1 et le segment 2, puis afficher dix mots à partir de l'adresse 2ff3b400, en utilisant le segment 2 du filetage numéro 1, entrez :

>cm 1 2
t1,2>od 2ff3b400 10

Pour afficher la structure de l'utilisateur à partir du noyau unix sys/user.h, saisissez :

crash -i sys/user.h <print user *u

Pour afficher les interblocages n'importe où sur le système, saisissez :

>dlock

Pour afficher un interblocage impliquant un processus léger donné 00d3e, saisissez :

>dlock 00d3e

La sortie est similaire à :

Deadlock from tid 00d3e.  This tid waits for the first line lock, 
owned by Owner-Id that waits for the next line lock, and so on...  
     LOCK NAME    |   ADDRESS  |  OWNER-ID | WAITING FUNCTION 
           lockC1 | 0x001f79e0 |  Tid 113d | .lock_write_ppc 
                   called from :  .times + 0000020c 
Dump data incomplete.Only 0 bytes found out of 4.  
                   called from :  .file + 0000000b 
            lockC2 | 0x001f79e8 | Tid d3f | .lock_write_ppc 
                     called from :  .times + 000001c8 
Dump data incomplete.Only 0 bytes found out of 4.  
                   called from :  .file + 0000000b

Pour afficher la troisième entrée dans la table vfs, saisissez :

> vfs 3

La sortie est similaire à :

VFS ADDRESS TYPE OBJECT STUB NUM FLAGS PATHS 
  3 1a62494  jfs 1a6d47c 1a6d650 5 D /dev/hd1 mounted over /u 
        flags:  C=disconnected D=device I=remote P=removable 
                R=readonly     S=shutdown U=unmounted Y=dummy

Pour afficher les données de la table v-node associées à la troisième entrée de la table vfs, saisissez :

> vfs - 3

La sortie est similaire à :

VFS ADDRESS TYPE  OBJECT    STUB NUM FLAGS PATHS 
  3 1a62494  jfs 1a6d47c 1a6d650   5 D   /dev/hd1 mounted over /u 
ADDRESS VFS MVFS VNTYPE FSTYPE COUNT ISLOT    INODE FLAGS 
1a6e0ac   3    -   vreg    jfs     1    -   18f82c0 
1a6e218   3    -   vreg    jfs     1    -   18f8770 
1a6e24c   3    -   vreg    jfs     1    -   18f8590 
1a6e17c   3    -   vdir    jfs     3    -   18f7f00 
1a6dea4   3    -   vreg    jfs     2    -   18f65b0 
1a6dfa8   3    -   vdir    jfs     5    -   18f6100
1a6d47c   3    -   vdir    jfs     1    -   18ea580 vfs_root

Pour afficher les données du noeud v pour l'adresse 1a6e078, saisissez :

> vnode 1a6e078 
ADDRESS VFS MVFS VNTYPE FSTYPE COUNT ISLOT    DATAPTR FLAGS  
1a6e078   0    -   vreg    jfs     4     -    18f6790 
 Total VNODES printed 1 


Dernière mise à jour : Dimanche, le 29 août 2021