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
- La commande crash est un utilitaire interactif permettant d'examiner une image du système d'exploitation ou le noyau en cours d'exécution. L'installation de commande de crash interprète et formate les structures de contrôle dans le système et certaines fonctions diverses pour examiner un vidage.
- Le paramètre SystemImageFile spécifie le fichier contenant l'image système. La valeur par défaut du paramètre SystemImageFile est le fichier /dev/mem. Le paramètre KernelFile contient les définitions des symboles du noyau. La valeur par défaut du paramètre KernelFile est le fichier /unix.
- Vous pouvez exécuter la commande crash sans paramètre pour examiner un système actif. Si vous spécifiez un fichier image système, la commande crash suppose qu'il s'agit d'un fichier de vidage système et définit le processus léger par défaut sur le processus léger en cours d'exécution au moment du crash.
- Lors de l'utilisation de la commande crash, un fichier noyau doit être disponible.
- Le traçage de pile du processus en cours sur un système en cours d'exécution ne fonctionne pas.
- Lorsque le crash est exécuté sur un système en cours d'exécution, vous verrez un message sur la possibilité qu'un crash puisse provoquer un crash du système et/ou une corruption des données, et il y aura des entrées de journal de bord d'erreur notant chaque fois que le crash est démarré et arrêté. Celles-ci sont effectuées en raison du risque posé par certaines sous-commandes de crash. Ces sous-commandes sont affichées ici avec les messages, intitulés Attention. Si vous vous limitez aux sous-commandes sans ces messages, vous pouvez éviter des problèmes. La commande crash reconnaît les alias suivants dans les spécifications de format de sous-commande :
- Le format d'instruction désassemble les instructions à une adresse spécifiée. La commande crash tente de désassembler les instructions en une instruction d'architecture PowerPC ou POWER, selon l'architecture de la machine sur laquelle le vidage système a été effectué. Si l'instruction n'est pas dans l'architecture appropriée, la commande crash tente de la désassembler en une instruction de l'autre architecture. Ce comportement peut être modifié avec la sous-commande set idarch.
- Symboles affichés par crash : Plusieurs sous-commandes de crash (telles que trace, ds, ....) affichent les noms de symboles et les déplacements correspondant aux adresses numériques. Tous les symboles de KernelFile s'affichent avec le nom du symbole, un signe + et le déplacement, par exemple :
- Adresses en panne : La plupart des commandes de crash prennent des adresses ou des noms de symboles de noyau comme paramètres. Les adresses sont toujours spécifiées en hexadécimal et peuvent généralement être spécifiées sous l'une des formats suivantes :
- Édition en ligne de commande : La commande crash fournit des fonctionnalités d'édition en ligne de commande similaires à celles fournies par l'interpréteur de commande Korn Shell. Le mode vi fournit des fonctionnalités d'édition de type vi, tandis que le mode emacs vous offre des commandes similaires à celles d'emacs. Vous pouvez activer ces fonctionnalités en utilisant la sous-commande crash set edit. Ainsi, pour activer l'édition en ligne de commande de style vi, vous devez taper la sous-commande set edit vi.
- Redirection de sortie : La commande crash fournit un sous-ensemble de la redirection entrée/sortie de l'interpréteur de commande Korn Shell. Plus précisément, les opérateurs suivants sont fournis :
Format | Alias | Format | Alias |
---|---|---|---|
byte | b | instruction | I |
character | char, c | longdec | ld, D |
decimal | dec, e | longoct | lo, O |
directory | direct, dir, d | octal | oct, o |
hexadecimal | hexadec, hex, h, x | write | w |
i-node | ino, i |
.thread_terminate+3e0 vmmerrlog + 0x00000018 |
Les symboles textuels des extensions de noyau sont affichés sous le format .[KernelExtensionName:FunctionName]+Offset, mais uniquement si les tables de traçabilité pour l'extension de noyau se trouvent dans SystemImageFile. Le paramètre Offset est le déplacement hexadécimal (en octets) depuis le début de la fonction. Dans l'exemple suivant, l'adresse affichée est 0x44c octets après le début de la routine svc_run dans l'extension de noyau nfs_ext :
.[nfs.ext:svc_run]+44c |
Les symboles de données des extensions du noyau ne peuvent pas être affichés en cas de plantage, de sorte que les adresses des éléments de données dans les extensions du noyau s'affichent sous le format .[KernelExtensionName]+Offset, où Offset est le déplacement de l'adresse depuis le début de l'extension du noyau. Ceci est également utilisé pour les symboles de texte lorsque les tables de traçabilité ne sont pas disponibles dans SystemImageFile. Dans l'exemple suivant, l'adresse affichée est 0x4c octets après le début de l'extension du noyau nfs.ext :
.[nfs.ext] + 0x0000004c |
Format | Description |
---|---|
addr | Un nombre hexadécimal à 8 chiffres, considéré comme une adresse effective dans le contexte du processus et du processus léger en cours, ou (dans certains cas) le contexte du processus léger spécifié sur une commande cm précédente. Le paramètre addr peut être préfixé par les caractères 0x. |
segid:offset | segid est l'identificateur de segment pour un segment de mémoire virtuelle. La taille maximale est de 6 chiffres hexadécimaux. Le offset est le déplacement (en octets) depuis le début de ce segment. La taille maximale est de 7 chiffres hexadécimaux. |
r:realaddr | r est le caractère littéral "r". realaddr est une adresse mémoire réelle. Ce format ne peut être utilisé que lors de l'exécution d'un crash sur un vidage système, et il n'affichera que les zones de données de vidage ayant été vidés par une adresse réelle au lieu de l'adresse virtuelle. readaddr peut contenir jusqu'à 12 chiffres hexadécimaux. Pour améliorer la lisibilité, vous pouvez inclure des traits de soulignement ("_") n'importe où dans ces valeurs. |
Exemples :
18340050 2314:55300 r:14_3370_0560 (pareil que r:1433700560) |
Symbole | Description |
---|---|
| (symbole du tuyau) | Canalise toute la sortie de la commande avant le symbole vers l'entrée de la commande après le symbole. La sortie standard et la sortie d'erreur sont affectées, ce qui est différent du comportement standard de l'interpréteur de commande. |
> nomdufichier | Écrit la sortie de la commande avant le > au nom de fichier. Les sorties standard et d'erreur sont écrites dans le fichier. |
>> nomdufichier | Ajoute la sortie de la commande avant le >> à la fin du nom de fichier. Les sorties standard et d'erreur sont écrites dans le fichier. |
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 |