home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PC World Komputer 1999 March B
/
SCO_CASTOR4RRT.iso
/
frle
/
root.1
/
usr
/
lib
/
locale
/
fr
/
LC_MESSAGES
/
debug.help
/
debug
Wrap
Text File
|
1998-08-19
|
75KB
|
2,282 lines
# This file contains the help messages used by the Command Line interface.
# Each help message is bracketed by lines starting with ++.
# The debugger does not depend on the size (number of lines) of any message,
# but it does depend on the order of the messages. New messages MUST be
# added to the end of the file.
++ !
NOM
! - exΘcution d'une commande shell.
RESUME
! cmd_line
!!
DESCRIPTION
ExΘcute une commande shell. Le reste de la ligne est transmis au shell
pour Ωtre interprΘtΘ. En particulier, les donnΘes ne sont PAS redirigΘes
par le dΘbogueur mais par le shell. La variable $SHELL, lorsqu'elle est
dΘfinie, comporte le chemin d'accΦs complet du shell α utiliser. Si
$SHELL n'est pas dΘfinie, c'est /usr/bin/sh qui est employΘ. Le
dΘbogueur attend que la commande s'achΦve, mais ne prend pas le
contr⌠le des processus rΘsultants.
!! indique que la derniΦre commande shell doit Ωtre rΘexΘcutΘe.
VOIR EGALEMENT
create, redirection
++
++ alias
NOM
alias - ajout, recencement ou suppression des alias.
RESUME
jetons des noms d'alias ...
alias [nom]
alias -r nom
DESCRIPTION
La premiΦre forme crΘe un alias "nom" pour les "jetons". Tous les
caractΦres qui se trouvent avant le retour chariot ou le commentaire
seront considΘrΘs comme faisant partie de la dΘfinition. Les alias
existants ou les commandes dΘbogueur peuvent Ωtre redΘfinis sous un nom
d'alias. Une fois que cette dΘfinition est effectuΘe, l'utilisation de
l'alias Θquivaut α taper la sΘquence de symboles qu'il remplace. Les
alias peuvent Ωtre dΘfinis par d'autres alias, mais non de faτon
rΘcursive.
Les dΘfinitions d'alias peuvent contenir les identificateurs spΘciaux
$1, $2,... Chacun de ces identificateurs spΘciaux $n est remplacΘ, dans
une dΘfinition d'alias, par le ΘniΦme argument de l'appel d'alias, les
arguments Θtant classΘs par ordre croissant α partir de 1. Chaque
argument doit Ωtre prΘcΘdΘ par un espace blanc et se terminer par un
espace, un caractΦre d'interligne, le caractΦre de commentaire (#) ou le
dΘbut d'un bloc ({). Les identificateurs spΘciaux $1, $2, ... ne seront
pas remplacΘs α l'intΘrieur d'une chaεne entre guillemets.
Si la dΘfinition d'un alias comporte l'identificateur spΘcial $#, au
cours de l'appel de l'alias, celui-ci sera remplacΘ par le nombre
d'arguments qui interviennent effectivement dans cet appel. Si la
dΘfinition de l'alias comporte l'identificateur spΘcial $*, au cours de
l'appel de l'alias, celui-ci sera remplacΘ par une liste de tous les
arguments transmis au cours de cet appel, chaque argument Θtant sΘparΘ
des autres par un espace.
S'il n'y a pas d'arguments, la commande alias affiche la liste de tous
les alias actuels. S'il y a un seul nom, l'alias correspondant
s'affiche.
L'option -r de la commande alias supprime tous les alias correspondants
au nom indiquΘ.
EXEMPLES
alias
alias i
alias i step -i
alias edit list $1@1
alias print_list while($1) { print *$1; set $1 = $1->next }
alias b if ($# > 0) { stop $* } else { stop %list_file@%list_line }
alias -r i
++
++ stop
NOM
stop - dΘfinition ou affichage des ΘvΘnements stop.
RESUME
stop [-p liste_proc] [[-q] [-c nombre] expr_stop [commande]]
stop [-p liste_proc]
DESCRIPTION
Un ΘvΘnement stop spΘcifie une condition de l'espace adresse d'un
programme qui induit le dΘbogueur α arrΩter l'exΘcution du programme.
"expr_stop" correspond α une ou plusieurs expressions liΘes avec les
opΘrateurs spΘciaux && (et) ou || (ou). Les expressions peuvent
consister en:
1) un emplacement
Un emplacement dans le texte du programme - ceux-ci peuvent se
comparer α la ponctuation classique.
2) (expr)
Une expression dans le langage actuel - ce type d'expression
top devient vraie en mΩme temps que l'expression elle-mΩme ;
3) *lvalue
Un emplacement dans les donnΘes du programme pouvant Ωtre
modifiΘ - ce type d'expression se rΘalise lorsque la valeur
change.
Les expressions expr_stop sont continuellement ΘvaluΘes par le
dΘbogueur lorsque le processus sujet est en cours d'exΘcution. Lorsque
l'expression entiΦre devient vraie, le dΘbogueur annonce une occurrence
de l'ΘvΘnement et exΘcute la commande optionnelle qui y est associΘe.
Pour plus d'informations, reportez-vous α expr_stop.
L'option -q indique que le dΘbogueur ne dΘclare pas l'ΘvΘnement.
L'option -c indique que l'ΘvΘnement ne se dΘclenche qu'aprΦs un certain
nombre de fois ou l'expression expr_stop devient vraie, nombre indiquΘ par
"nombre". L'ΘvΘnement se dΘclenchera toutes les autres fois ou
l'expression devient vraie.
La deuxiΦme syntaxe de la commande stop recense tous les ΘvΘnements
stop pour les processus indiquΘs.
A la diffΘrence de ce qui se produit pour la plupart des commandes, si
l'option -p n'est pas fournie α la commande stop, celle-ci va
s'appliquer α tous les processus dΘrivΘs du programme actuel (%program).
EXEMPLES
stop myfile.c@230
stop *bar
stop (x == 5)
stop foo && (a > 7)
stop (a == 4) || (b == 7)
VOIR EGALEMENT
%program, %verbose, assoccmd, delete, disable, enable, events,
expr, emplacement, liste_proc, scope, expr_stop
++
++ break
NOM
break - sortie d'une boucle while.
RESUME
break
DESCRIPTION
La commande break force le dΘbogueur α sortir de la boucle while
la plus profonde concernΘe par la commande.
EXEMPLES
while($i < 10) { if (x[$i] == $myvar) break; set $i = $i + 1 }
VOIR EGALEMENT
continue, while
++
++ continue
NOM
continue - continuation de l'exΘcution de la prochaine itΘration de
la boucle while.
RESUME
continue
DESCRIPTION
La commande continue force le dΘbogueur α commencer l'exΘcution
de la prochaine itΘration de la boucle while la plus profonde
concernΘe par la commande. L'exΘcution dΘmarre avec la rΘΘvaluation
de l'expression de la boucle.
EXEMPLES
while (i < 20) { step; if (i % 2) continue; p i, x[i] }
VOIR EGALEMENT
break, while
++
++ cancel
NOM
cancel - annulation des signaux en attente.
RESUME
cancel [-p liste_proc] [signal ...]
DESCRIPTION
Les signaux spΘcifiΘs sont annulΘs pour les processus
indiquΘs (%proc par dΘfaut). Si un des signaux a ΘtΘ interceptΘ
par le dΘbogueur dans un des processus spΘcifiΘs, ces signaux ne
seront pas reτus par ces processus lorsque leur exΘcution
reprend. Si aucun signal n'est spΘcifiΘ, tous les signaux en
attente pour les processus indiquΘs vont Ωtre annulΘs.
EXEMPLES
cancel
cancel segv
cancel -p all sigfpe sigemt
VOIR EGALEMENT
kill, liste_proc, signal, signames
++
++ create
NOM
create - crΘation ou contr⌠le d'un ou plusieurs processus nouveaux.
RESUME
create [-dr] [-f all|none|procs] [-l start_loc] [cmd_line]
DESCRIPTION
La commande create prend une ligne de commande de type shell et crΘe un
ou plusieurs processus. La ligne de commande peut inclure une redirection
d'entrΘe et/ou de sortie, ainsi qu'un canal shell. Tous les processus
rΘsultants s'arrΩtent α l'emplacement spΘcifiΘ par "start_loc".
Si aucun emplacement de dΘmarrage n'est spΘcifiΘ ou que l'emplacement
indiquΘ est introuvable dans l'espace adresse du processus, ce
dernier s'arrΩte α la fonction "main". Si aucune fonction "main" n'existe,
le processus s'arrΩte α l'adresse indiquΘe dans l'en-tΩte du
fichier objet. Pour crΘer et exΘcuter un processus, tapez "create...",
puis "run".
Si aucune "cmd_line" n'est specifiΘe, c'est la "cmd_line" prΘcΘdente
qui est utilisΘe. Tout processus crΘΘ α partir d'invocations existantes
de cette "cmd_line" est dΘtruit.
Un identificateur de processus dΘbogueur propre est attribuΘ α chaque
processus crΘΘ. Il est possible de faire rΘfΘrence α un processus par
cet identificateur ou par l'id du processus systΦme dans les commandes
acceptant l'option -p. Le premier processus crΘΘ dans un pipeline
devient le processus actuel (%proc). Tous les processus crΘΘs α partir
d'un exΘcutable simple (via fork (2)) peuvent Ωtre rΘfΘrencΘs par le nom
de cet exΘcutable (nom programme).
Si l'option -r est spΘcifiΘe, les entrΘes/sorties du processus sont
redirigΘes vers un pseudo-terminal. Toutes les sorties sont prΘcΘdΘes
du nom de ce pseudo-terminal. S'il est nΘcessaire de fournir des entrΘes
α ce processus, la commande "input" doit Ωtre utilisΘe. L'option -d
indique qu'il ne doit pas y avoir de redirection. Si aucune des deux
options n'est spΘcifiΘe, le mode spΘcifiΘ par %redir sera utilisΘ (par
dΘfaut, pas de redirection).
Si -f est employΘe avec un argument "none" (aucune), le dΘbogueur ne
suivra pas les processus enfants d'un processus utilisant la duplication
("fork"). Si l'option -f est employΘe avec, soit la valeur "all" (tous),
soit la valeur "procs" (processus), tous les processus enfant seront
contr⌠lΘs par le dΘbogueur (ces processus pouvant Ωtre libΘrΘs du
contr⌠le du dΘbogueur en utilisant la commande "release"). Si l'option
-f n'est pas spΘcifiΘe, le fonctionnement du dΘbogueur sera contr⌠lΘ par
%follow (le fonctionnement par dΘfaut Θtant de suivre tous les processus
enfant).
EXEMPLES
create
create -f none myprog 1 2 3
create myprog 1 2 3 | myfilter1 | myfilter2
VOIR EGALEMENT
!, %follow, %program, %redir, grab, input, liste_proc, rename, release
++
++ delete
NOM
delete - suppression des ΘvΘnements.
RESUME
delete numΘro_ΘvΘnement ...
delete -a [-p liste_proc] [type_ΘvΘnement]
DESCRIPTION
La premiΦre syntaxe supprime les ΘvΘnements correspondant
aux numΘros d'ΘvΘnements spΘcifiΘs.
La deuxiΦme syntaxe supprime tous les ΘvΘnements du type spΘcifiΘ,
type_ΘvΦnement (si aucun n'est spΘcifiΘ, tous les types), pour les
processus indiquΘs (si aucun n'est indiquΘ, le processus actuel).
"type_ΘvΦnement" peut Ωtre dΘfini par "onstop", "signal", "stop" ou
"syscall".
EXEMPLES
delete 1 3 5
delete -a -p p1
delete -a stop
delete -a syscall
VOIR EGALEMENT
change, disable, enable, events, onstop, liste_proc,
signal, stop, syscall
++
++ dis
NOM
dis - dΘsassemblage des instructions machine.
RESUME
dis [-p liste_proc] [-c nombre_instr] [emplacement]
DESCRIPTION DΘsassemble les instructions "instr_count" dans chaque
processus spΘcifiΘ (%proc par dΘfaut). Si aucune instruction n'est
donnΘe, la valeur par dΘfaut de count est %num_lines, qui commence a 10
et peut Ωtre modifiΘe.
Si un "emplacement" est spΘcifiΘ, le dΘsassemblage commence α l'adresse
prΘcisΘe pour chaque processus indiquΘ. Si un "emplacement" n'est pas
spΘcifiΘ, le premiΦre commande dis aprΦs dΘclenchement d'un ΘvΘnement
ou aprΦs remise α zΘro de %frame, commencera α %loc. Les prochaines
commandes dis continuent α partir de l'adresse qui suit la derniΦre
instruction affichΘe par la commande dis prΘcΘdente.
EXEMPLES
dis
dis -c 20 main
dis file.c@10
VOIR EGALEMENT
%frame, %loc, %num_lines, dump, emplacement, print, liste_proc
++
++ disable
NOM
disable - dΘsactivation des ΘvΘnements
RESUME
disable numΘro_ΘvΘnement ...
disable -a [-p liste_proc] [type_ΘvΘnement]
DESCRIPTION
La premiΦre syntaxe dΘsactive les ΘvΘnements correspondants aux
numΘros spΘcifiΘs.
La deuxiΦme syntaxe dΘsactive tous les ΘvΘnements spΘcifiΘs par
type_ΘvΘnement (si aucun type n'est spΘcifiΘ, tous les types) pour les
processus indiquΘs (lorsqu'aucun n'est spΘcifiΘ, le processus actuel).
"type_ΘvΘnement" peut Ωtre dΘfini par "onstop", "signal", "stop" ou
"syscall".
Les ΘvΘnements dΘsactivΘs n'ont aucun effet sur les processus auxquels
ils s'appliquent, mais ils ne sont pas supprimΘs. Ils pourront Ωtre
rΘinstallΘs par "enable".
EXEMPLES
disable 3 5
disable -a -p p1
disable -a onstop
disable -a signal
VOIR EGALEMENT
change, delete, enable, events, onstop, liste_proc, signal,
stop, syscall
++
++ dump
NOM
dump - affiche le contenu de la mΘmoire
RESUME
dump [-p liste_proc] [-c nombre_octet] emplacement
DESCRIPTION
La commande dump affiche le contenu de la mΘmoire pour
chaque processus spΘcifiΘ (%thread ou %proc par dΘfaut).
"nombre_octet" (%nbr_octets par dΘfaut) octets, 16 octets par
ligne, en hexadΘcimal et ASCII vont s'afficher, en commenτant α
l'adresse indiquΘe par un "emplacement".
%num_bytes commence α 256, mais peut Ωtre modifiΘ.
EXEMPLES
dump -c 16 myptr
dump %esp
dump 0x80001248
VOIR EGALEMENT
%num_bytes, dis, emplacement, print, liste_proc
++
++ enable
NOM
enable - activation des ΘvΘnements
RESUME
enable numΘro_ΘvΘnement ...
enable -a [-p liste_proc] [type_ΘvΘnement]
DESCRIPTION
La premiΦre syntaxe active les ΘvΘnements correspondants aux numΘros
d'ΘvΘnements spΘcifiΘs.
La deuxiΦme syntaxe active tous les ΘvΘnements du type spΘcifiΘ (si
aucun type n'est spΘcifiΘ, tous les types) pour les processus indiquΘs
(lorsqu'aucun n'est spΘcifiΘ, le processus actuel). "type_ΘvΘnement"
peut Ωtre dΘfini par "onstop", "signal", "stop" ou "syscall".
Seuls les ΘvΘnements prΘalablement dΘsactivΘs peuvent Ωtre activΘs.
Une fois activΘ, l'ΘvΘnement affecte α nouveau le processus dans lequel
il est dΘfini.
EXEMPLES
enable 3 5
enable -a -p p1
enable -a stop
enable -a signal
VOIR EGALEMENT
change, delete, disable, events, onstop, liste_proc, signal,
stop, syscall
++
++ events
NOM
events - liste des ΘvΘnements
RESUME
events [-p liste_proc] [numΘro_ΘvΘnement ...]
DESCRIPTION
Si aucun argument n'est spΘcifiΘ, la commande events
affiche une liste de tous les ΘvΘnements stop, des signaux, des appels
systΦme ou des actions onstop du processus actuel. Avec l'option -p,
elle affiche les ΘvΘnements associΘs aux processus spΘcifiΘs.
Lorsqu'un ou plusieurs numΘros d'ΘvΘnements sont indiquΘs, la commande
events affiche la liste complΦte de ces ΘvΘnements. Cette liste
comporte tous les processus pour lesquels l'ΘvΘnement est dΘfini et, le
cas ΘchΘant, tout le bloc de commandes associΘ.
EXEMPLES
events
events -p p1,p2
events 3
VOIR EGALEMENT
change, delete, disable, enable, onstop, liste_proc, signal,
stop, syscall
++
++ grab
NOM
grab - prend le contr⌠le des processus en cours ou d'une image du noyau.
RESUME
grab [-f all|none|procs] [-l load_file] live_object ...
grab -c fichier_image_mΘmoire fichier_objet
DESCRIPTION
La premiΦre syntaxe prend un ou plusieurs indicateurs de
processus ; le dΘbogueur va essayer de prendre le contr⌠le de chacun
des processus spΘcifiΘs (le contr⌠le n'est garanti qu'avec les
autorisations correspondantes). Chaque processus peut Ωtre spΘcifiΘ α
l'aide d'un chemin d'accΦs /proc ou d'un id processus.
L'option -l indique qu'un fichier objet de remplacement α utiliser pour
charger les symboles du processus. Si l'option -l est spΘcifiΘe, vous
ne pouvez indiquer qu'un seul processus.
Si l'option -f n'a aucun argument ("none"), le dΘbogueur ne suit pas les
processus enfants d'un processus qui se duplique. Si -f a pour
arguments "all" ou "procs", tous les processus enfants vont Ωtre sous
contr⌠le du dΘbogueur (ces processus peuvent Ωtre libΘrΘs du contr⌠le
du dΘbogueur avec la commande "release"). Si aucune option -f n'est
spΘcifiΘe, le comportement du dΘbogueur va Ωtre dictΘ par %follow
(par dΘfaut, tous les processus enfants).
La deuxiΦme syntaxe ouvre et examine un fichier source et son fichier
objet correspondant. Les images noyau crΘΘes par Grab peuvent Ωtre
examinΘes en utilisant toutes les commandes disponibles pour l'examen
des processus en cours d'exΘcution, mais sans que l'on puisse les
modifier ou les lancer.
Les processus examinΘs avec Grab, comme les processus crΘΘs normalement,
reτoivent un identificateur de processus du dΘbogueur et peuvent
Ωtre rΘfΘrencΘs soit avec cet identificateur, soit par l'id de leur
processus systΦme, soit encore par le nom du programme dont ils
proviennent. Le premier processus examinΘ par grab devient le
processus actuel (%proc).
EXEMPLES
grab 123
grab -f procs /proc/123 3455
grab -l myobject /proc/3455
grab -c core.save myobject
VOIR EGALEMENT
%follow, %proc, %program, create, liste_proc, release, rename
++
++ help
NOM
help - demande de l'aide
RESUME
help [sujet]
DESCRIPTION
Le "sujet" peut Ωtre un alias, un nom de commande ou un sujet
d'aide quelconque. Si aucun sujet n'est spΘcifiΘ, la liste des
commandes disponibles et des sujets s'affiche.
EXEMPLES
help
help stop
help b
help emplacement
++
++ if
NOM
if - branchement conditionnel.
RESUME
if (expr) cmd
if (expr) cmd else cmd
DESCRIPTION
L'Θvaluation de l'expression s'effectue en langage actuel
(%db_lang ou %lang) dans le contexte du processus actuel (%proc).
Si l'expression est vraie, la partie "then" est exΘcutΘ. Dans le
cas contraire, c'est la partie "else" (si spΘcifiΘ) qui sera
exΘcutΘ. "cmd" peut reprΘsenter une commande simple ou un bloc de
commandes.
EXEMPLES
stop file.c@myfunc { if (x < 10) run; else print x }
VOIR EGALEMENT
%db_lang, %lang, bloc, expr, scope, while
++
++ input
NOM
input - envoi d'une entrΘe α un processus.
RESUME
input [-p nom_proc|-r pseudo-tty] [-n] chaεne
DESCRIPTION
Si un processus a ΘtΘ crΘΘ en utilisant la commande "create -r", ses
entrΘes et ses sorties, ainsi que les entrΘes/sorties des autres
processus dΘrivΘs du mΩme programme, sont redirigΘes vers un
pseudo-terminal. Pour envoyer une entrΘe α un tel processus, la
commande "input" doit Ωtre utilisΘe.
"pseudo-tty" est le nom du pseudo-terminal sur lequel les entrΘes
doivent Ωtre dirigΘes. Le dΘbogueur affiche le nom du pseudo-terminal
α cotΘ des sorties redirigΘes du processus. Il est Θgalement possible
d'afficher le nom du processus ou celui du programme. Si aucun processus
ou nom de pseudo-terminal n'est spΘcifiΘ, le pseudo-terminal associΘ au
programme actuel est celui qui sera utilisΘ.
L'entrΘe "chaεne" est envoyΘe au pseudo-terminal indiquΘ ou au
pseudo-terminal associΘ au processus (ou au programme) spΘcifiΘ. Une
nouvelle ligne est ajoutΘe α la fin de la chaεne, α moins que l'option
-n ne soit spΘcifiΘe.
EXEMPLES
input -r pts1 "voici une chaεne de caractΦres"
input -p myprog "en voici une autre"
VOIR EGALEMENT
%redir, create
++
++ jump
NOM
jump - modification du compteur de programme du processus.
RESUME
jump [-p liste_proc] emplacement
DESCRIPTION Vous devez interrompre le processus pour pouvoir lui
appliquer cette commande. La commande jump dΘfinit le compteur du
programme du processus indiquΘ (par dΘfaut %proc) α l'adresse spΘcifiΘe
par un "emplacement". L'exΘcution du processus reprend α cette adresse.
L'emplacement peut Ωtre n'importe quelle adresse dans le texte du processus
spΘcifiΘ, mais il faut nΘanmoins faire attention. La commande jump
n'essaye pas de s'adapter α la pile de processus si cette adresse est
en dehors de la fonction actuelle. Il faut Θgalement faire attention en
l'appliquant α des codes pouvant avoir des effets secondaires non
nΘgligeables.
RESUME
jump 10
jump -p p2 main+8
VOIR EGALEMENT
emplacement, liste_proc
++
++ kill
NOM
kill - envoie un signal α un processus
RESUME
kill [-p liste_proc] [signal]
DESCRIPTION
"signal" est transmis aux processus indiquΘs (%proc par dΘfaut).
Les signaux peuvent Ωtre spΘcifiΘs par leur nom ou leur numΘro. Un nom
de signal peut Ωtre ou non accompagnΘ du prΘfixe "SIG". Les majuscules
ou les minuscules ont la mΩme valeur. Si aucun signal n'est donnΘ, la
commande kill utilise les signaux SIGKILL.
EXEMPLES
kill -p all
kill sigfpe
kill -p p3 8
VOIR EGALEMENT
cancel, liste_proc, signal, signames
++
++ list
NOM
list - affiche les lignes de code source.
RESUME
list [-p liste_proc] [-c nombre] [id_proc@][nom_fichier@]nom_fonc
list [-p liste_proc] [-c nombre] [id_proc@][nom_fichier@]num_ligne
list [-p liste_proc] [-c nombre] /expreg/
list [-p listeproc] [-c nombre] ?expreg?
list [-p listeproc] [-c nombre]
DESCRIPTION
La commande list affiche les lignes source pour les processus spΘcifiΘs
ou pour le processus actuel, si liste_proc n'est pas spΘcifiΘ.
Les quatre premiΦres syntaxes spΘcifient des points de dΘpart pour
l'affichage. Les deux premiΦres permettent de spΘcifier les processus,
les fichiers, les fonctions et les numΘros de lignes. Si un processus
est spΘcifiΘ, il se substitue α tout autre processus donnΘ par l'option
-p. La troisiΦme syntaxe trouve la prochaine ligne correspondant α
l'expression rΘguliΦre ed (1)-style. La quatriΦme recherche en sens
inverse α partir de la ligne actuelle. La barre oblique ou le point
d'interrogation fermant la chaεne peuvent Ωtre omis, α moins qu'une
autre commande ne vienne sur la mΩme ligne. La derniΦre syntaxe
continue l'affichage α partir du fichier et de la ligne o∙ se terminait
le dernier affichage ou α partir de %file@%line aprΦs dΘclenchement
d'un ΘvΘnement ou de la remise α zΘro de %frame.
Si une limite ("count") a ΘtΘ spΘcifiΘe, le nombre de lignes
correspondant sera affichΘ, sinon seules %num_lines lignes seront
affichΘes, cette valeur partant de 10 et pouvant Ωtre changΘ.
AprΦs l'affichage d'un bloc de lignes, %list_file devient le nom du
fichier affichΘ et %list_lines le numΘro de la derniΦre ligne de code
source qui a ΘtΘ affichΘe.
EXEMPLES
list -c 20
list myfile@1
list myfunc
list /x/
list ?foobar
list /
VOIR EGALEMENT
%file, %frame, %line, %list_file, %list_line, emplacement,
print, liste_proc, expr_rΘg
++
++ map
NOM
map - affiche l'allocation des adresses virtuelles.
RESUME
map [-p liste_proc]
DESCRIPTION
Affiche la table des adresses virtuelles d'un ou plusieurs processus.
Si aucun argument n'est spΘcifiΘ, affiche la table du processus courant
(%proc). Avec l'option -p, affiche la table de chaque processus
reprΘsentΘ par l'ensemble de processus indiquΘs.
VOIR EGALEMENT
create, grab, liste_proc
++
++ symbols
NOM
symbols - affiche les noms, les valeurs et les types des symboles.
RESUME
symbols [-p liste_proc] [-o objet] [-n nom_fichier] [-dfgltuv] [modΦle]
DESCRIPTION
Affiche la liste des noms de variables visibles dans la trame actuelle
(%frame) des processus spΘcifiΘs (%proc par dΘfaut). Si aucune option
n'est spΘcifiΘe (ou si -l est prΘcisΘe) , elle affiche les noms locaux
dΘfinis dans la fonction actuelle (%func). L'option -f permet
d'afficher uniquement les noms visibles et locaux pour le fichier
actuel (%file). Si "nom_fichier" est spΘcifiΘ dans l'option -n, ce sont les
symboles de ce fichier qui s'affichent. L'option -g affiche uniquement
les noms en gΘnΘral visibles, dΘfinis dans l'objet actuel (fichier
exΘcutable ou bibliothΦque partagΘe). Si elle est accompagnΘe de
l'option -o, l'option -g affiche les noms visibles dΘfinis α
l'intΘrieur d'un objet spΘcifiΘ. L'option -d affiche les variables
intΘgrΘes du dΘbogueur. L'option -u affiche les variables dΘfinies par
l'utilisateur et gΘrΘes par le dΘbogueur.
Si un argument de type sh(1) est utilisΘ, celui-ci restreint encore plus
l'affichage pour n'y inclure que les noms de variables correspondants α
l'argument de recherche.
L'option -t affiche les types de symboles, en plus de leurs noms.
L'option -v affiche les valeurs de ces symboles. Notez bien que lorsque
le langage actuel est C++, l'option -v n'affiche pas des membres de
classe static. Ces derniers peuvent s'afficher lorsqu'on imprime le
symbole.
EXEMPLES
symbols -ftv
symbols -g -o libc.so.1 exec*
VOIR EGALEMENT
%file, %frame, %func, modΦle, print, liste_proc
++
++ print
NOM
print - imprime la valeur d'une expression.
RESUME
print [-p liste_proc] [-f format] [-v] expr, ...
DESCRIPTION
Affiche les rΘsultats de l'Θvaluation des listes d'expressions sΘparΘes
par des virgules. L'Θvaluation de ces expressions s'effectue dans le
contexte des processus spΘcifiΘs (%proc par dΘfaut). L'option -f
requiert un format (which see). Les expressions peuvent comporter des
variables de programme, des variables intΘgrΘes du dΘbogueur
(comme %line par exemple) et des variables dΘfinies par l'utilisateur
($myvar, $HOME). Lors de l'Θvaluation de l'appel d'une fonction, le
dΘbogueur crΘe une trame de pile pour cette fonction et l'exΘcute. Les
ΘvΘnements du dΘbogueur sont dΘsactivΘs pendant l'exΘcution de la
fonction. L'Θvaluation des expressions se fait en langage actuel
(%lang ou %db_lang). Chaque expression est suivie d'un espace et une
nouvelle ligne est ajoutΘe α la fin, α moins qu'un autre format ne soit
spΘcifiΘ.
L'option -v affiche des informations plus dΘtaillΘes. Les informations
supplΘmentaires comprennent des prototypes de fonctions pour toutes les
fonctions, appelΘs par le dΘbogueur lors de l'Θvaluation de
l'expression. Ceci est utile en C++ afin de voir comment les fonctions
surchargΘes sont rΘsolues. L'option -v affichera Θgalement la structure
gΘnΘrΘe par le compilateur et les membres des classes, comme les
pointeurs en direction des tables de fonctions virtuelles.
La commande "set" peut Θgalement Ωtre utilisΘe afin d'Θvaluer des
expressions du langage. Par contre, elle n'imprime pas le rΘsultat d'une
expression. Elle est utilisΘe principalement pour Θvaluer une expression
pouvant avoir des effets secondaires, comme une assignation.
EXEMPLES
print %line, %file, %func
print "a[i] == ", a[i]
print *ptr->next
print -f "0x%x\n" main
print -v myfunc(1, 2, 3)
VOIR EGALEMENT
%db_lang, %lang, C++, expr, format, liste_proc, scope, set
++
++ ps
NOM
ps - Θtat du processus.
RESUME
ps [-p liste_proc]
DESCRIPTION
Affiche la liste d'Θtat des processus sous contr⌠le. Si aucune option -p
n'est spΘcifiΘe, l'Θtat de tous les processus sous contr⌠le est affichΘ.
Le processus actuel (%proc) est signalΘ par un astΘrisque (*).
VOIR EGALEMENT
liste_proc
++
++ pwd
NOM
pwd - affiche le rΘpertoire de travail actuel.
RESUME
pwd
DESCRIPTION
pwd affiche le rΘpertoire de travail actuel du dΘbogueur.
VOIR EGALEMENT
cd
++
++ quit
NOM
quit - sort du dΘbogueur.
RESUME
quit
DESCRIPTION
Sort du dΘbogueur. Tous les processus contr⌠lΘs seront arrΩtΘs
(s'ils ont ΘtΘ crΘΘs) ou libΘrΘs et lancΘs (s'ils Θtaient
contr⌠lΘs par la commande grab).
VOIR EGALEMENT
release
++
++ release
NOM
release - libΦre un ou plusieurs processus sous contr⌠le.
RESUME
release [-s] [-p liste_proc]
DESCRIPTION
Les processus indiquΘs (%proc par dΘfaut) ne sont plus sous contr⌠le du
dΘbogueur. Avec l'option -s, chaque processus est libΘrΘ dans un Θtat
arrΩtΘ ; sinon chaque processus est libΘrΘ et peut continuer son
exΘcution. Un processus peut Ωtre libΘrΘ mΩme s'il n'a pas ΘtΘ saisi
par le dΘbogueur ; ce qui signifie que les processus crΘΘs peuvent
aussi Ωtre libΘrΘs.
EXEMPLES
release -p p1
release -s
VOIR EGALEMENT
liste_proc, quit
++
++ run
NOM
run - dΘfinit les processus en cours d'exΘcution
RESUME
run [-p liste_proc] [-bfr] [-u emplacement]
DESCRIPTION
DΘfinit la liste des processus en cours d'exΘcution (%proc par dΘfaut).
L'option -f indique que le dΘbogueur exΘcute le processus en premier
plan: il attendra l'arrΩt du processus avant de rendre la main α
l'utilisateur. L'option -b indique une exΘcution en arriΦre-plan (pas
d'attente). Le contr⌠le passe immΘdiatement aux mains de l'utilisateur
et le processus est lancΘ. Si aucune de ces deux options -f ou -b n'est
spΘcifiΘe, la valeur par dΘfaut est indiquΘe par la variable %wait du
dΘbogueur.
L'option -r fait que le processus continue α s'exΘcuter jusqu'au retour
de la fonction actuelle. L'option -u spΘcifie l'adresse (un
"emplacement") d'o∙ il faut commencer l'exΘcution.
EXEMPLES
run -p all -b
run -r
run -u 108
VOIR EGALEMENT
%wait, emplacement, liste_proc, step
++
++ script
NOM
script - exΘcute une commande script du dΘbogueur.
RESUME
script [-q] fname
DESCRIPTION
Lit et exΘcute des commandes du dΘbogueur α partir d'un fichier.
Les commandes sont affichΘes avant leur exΘcution, α moins que l'option
-q ne soit spΘcifiΘe. Les scripts pouvant Ωtre imbriquΘs.
++
++ set
NOM
set - modifie la valeur d'une variable du dΘbogueur ou d'un programme.
RESUME
set [-p liste_proc] [-v] variable_dΘbog_ou_utilisateur [=] expr [,expr...]
set [-p liste_proc] [-v]expression_langue
DESCRIPTION
La commande "set" possΦde deux syntaxes. La premiΦre est utilisΘe
afin d'allouer une nouvelle valeur α une variable interne du
dΘbogueur ou une variable dΘfinie par l'utilisateur et gΘrΘe par
le dΘbogueur (par exemple, %lang ou $foo). Les valeurs correctes
pour l'expression "expr" dΘpendent de la variable. Certaines
variables, comme %lang, accepte une sΘrie de nom spΘcialement
dΘfinis. D'autres variables peuvent accepter toutes les
expressions du dΘbogueur ou d'un langage qui peuvent Ωtre
converties en chaεne de caractΦres. Dans le cas d'une liste de
chaεnes de caractΦres (et de variables utilisateurs) sΘparΘes par
des virgules, les valeurs des chaεnes de caractΦres de ces
expressions sont concatΘnΘes. Voir la commande "help" de chaque
variable du dΘbogueur pour afficher les valeurs correctes dans
chaque cas.
Dans sa deuxiΦme syntaxe, la commande set peut Ωtre utilisΘe pour
l'Θvaluation de toute expression de langage, bien que
gΘnΘralement elle soit utilisΘe pour l'Θvaluation de l'expression
d'un assignement. Si plusieurs processus sont spΘcifiΘs, la
commande est ΘvaluΘe dans le contexte de chaque processus dans
l'ordre.
L'option -v affiche les prototypes des fonctions, pour toutes les
fonctions appelΘes par le dΘbogueur lors de l'Θvaluation de
l'expression. Ceci est utile en C++ afin de voir comment les fonction
surchargΘes sont rΘsolues.
EXEMPLES
set %global_path = %global_path, ":src/new/mydir"
set -p all %path = "mydir"
set %frame 2
set %eax = 0x3421
set x = 3
set -v myfunc(a, b)
VOIR EGALEMENT
%db_lang, %lang, C++, expr, liste_proc, scope, uservars
++
++ signal
NOM
signal - dΘfinit ou affiche les signaux pour un processus.
RESUME
signal [-p liste_proc] [-iq] [signal ... [commande]]
DESCRIPTION
Lorsqu'un signal est transmis α un processus, le dΘbogueur, par dΘfaut,
va intercepter le signal et annoncer cette occurrence. Le signal peut
Ωtre annulΘ α l'aide de la commande "cancel" ou le processus peut
continuer et recevoir le signal. L'option -i accompagnΘe d'un ou
plusieurs noms ou numΘros de signaux (voir "kill"), indique que le
dΘbogueur va ignorer ces signaux (il ne va pas les intercepter pour la
liste de processus donnΘs par liste_proc). Un nom de signal peut Ωtre ou
non accompagnΘ du prΘfixe "SIG". Les majuscules ou les minuscules ont
la mΩme valeur. Si le signal est spΘcifiΘ α nouveau sans l'option -i,
l'action par dΘfaut de ce signal est rΘtablie.
Si une commande est donnΘe avec un groupe de signaux, le dΘbogueur
Θtablit un ΘvΘnement pour ce groupe. L'ΘvΘnement peut Ωtre effacΘ,
dΘsactivΘ ou activΘ, tout comme les ΘvΘnements "stop", "onstop" et
"syscall". Des ΘvΘnements multiples peuvent Ωtre allouΘs au mΩme signal.
Effacer tous lesΘvΘnements pour un signal donnΘ n'enlΦve pas l'action
par dΘfaut du dΘbogueur pour ce signal. L'option -q indique que le
signal ne sera pas annoncΘ.
Sans arguments, cette commande affiche la liste des signaux
correspondant α la liste des processus fournie par liste_proc.
A la diffΘrence de ce qui se produit pour la plupart des commandes, si
l'option -p n'est pas fournie α la commande stop, celle-ci va
s'appliquer α tous les processus dΘrivΘs du programme actuel (%program).
EXEMPLES
signal -i fpe emt
signal SIGFPE
signal 8 { if (x == 0) cancel 8; run }
VOIR EGALEMENT
assoccmd, cancel, delete, disable, enable, kill, liste_proc, signames
++
++ step
NOM
step - lance un processus pas α pas.
RESUME
step [-p liste_proc] [-ibfoq] [-c nombre]
DESCRIPTION
Les processus indiquΘs (%proc par dΘfaut) sont exΘcutΘs pas α pas un
certain nombre de fois, nombre dΘterminΘ par "nombre" (par dΘfaut
nombre=1). Si "nombre" est explicitement dΘfini par 0, cela indique
que l'exΘcution se rΘpΦte, jusqu'a une interruption ou un arrΩt
provoquΘ par un ΘvΘnement.
L'option -i indique que les instructions s'exΘcuteront pas α pas ; si
elle n'est pas spΘcifiΘe, ce seront les commentaires qui seront exΘcutΘs
pas α pas. L'option -o indique que les appels α des fonctions
s'exΘcutent comme Θtant une seule instruction ; si elle n'est pas
spΘcifiΘe, le contenu de l'appel α la fonction sera exΘcutΘ pas α pas.
L'option -f spΘcifie que le dΘbogueur attend l'arrΩt du processus
avant de rendre la main α l'utilisateur (c.α.d. que le processus
s'exΘcute en premier plan). L'option -b indique une exΘcution en
arriΦre-plan (pas d'attente). Le processus est lancΘ, mais le
contr⌠le passe immΘdiatement aux mains de l'utilisateur. Si
aucune de ces deux options -f ou -b n'est spΘcifiΘe, la valeur
par dΘfaut est indiquΘe par la variable %wait du dΘbogueur.
L'option -q indique que l'exΘcution pas α pas doit Ωtre
'discrΦte' ; le dΘbogueur n'affiche pas l'id du processus en
cours d'exΘcution et n'imprime pas la ligne du code source qui va
Ωtre exΘcutΘ.
EXEMPLES
step -io
step -b
step -p all -c 10
VOIR EGALEMENT
%verbose, %wait, processus, liste_proc, run
++
++ halt
NOM
halt - arrΩte un processus s'exΘcutant en arriΦre-plan.
RESUME
halt [-p liste_proc]
DESCRIPTION
Le dΘbogueur oblige chacun des processus indiquΘs (%proc par
dΘfaut) α arrΩter immΘdiatemment son exΘcution. La requΩte peut
ne pas avoir un effet immΘdiat α cause des temps d'attente
systΦme et des fluctuations dans l'ordre des tΓches.
La commande "halt" ne s'applique pas aux processus qui
s'exΘcutent en premier plan, le dΘbogueur ne rendant pas la main
α l'utilisateur avant l'arrΩt de ces processus. Pour arrΩter un
processus ou un ensemble de processus s'exΘcutant en premier
plan, utilisez la touche d'interruption (gΘnΘralement
"suppression").
VOIR EGALEMENT
%wait, liste_proc, run, step
++
++ syscall
NOM
syscall - mets en place le suivi des appels systΦmes.
RESUME
syscall [-p liste_proc] [[-eqx] [-c nombre] call ... [commande]]
DESCRIPTION
Indique les actions α entreprendre lorsqu'un processus entre dans un
appel systΦme ou en sort. Si aucun argument n'est spΘcifiΘ, affiche la
liste des appels actuels pour les processus indiquΘs.
Lorsqu'un ou plusieurs noms ou numΘros d'appel systΦme sont
indiquΘs, le dΘbogueur suspend le processus de ces appels systΦme
en entrΘe (-e, dΘfaut) et/ou en sortie (-x). L'appel systΦme sera
annoncΘ et toutes les "commandes" qui lui sont associΘes seront
exΘcutΘes.
L'option -q spΘcifie que l'ΘvΘnement ne sera pas annoncΘ.
L'option -c spΘcifie que l'ΘvΘnement se dΘclenchera un certain
nombre de fois (donnΘ par "nombre") avant que le dΘbogueur
n'interrompe le processus. Le processus s'arrΩtera α toutes les
occurrences suivantes.
Utilisez "help sysnames" pour obtenir une liste des noms des
appels systΦmes corrects, les majuscules et les minuscules
n'Θtant pas prise en compte.
A la diffΘrence de ce qui se produit pour la plupart des
commandes, si l'option -p n'est pas fournie α la commande
syscall, celle-ci va s'appliquer α tous les processus dΘrivΘs du
programme actuel (%program).
EXEMPLES
syscall -c 10 write { if (fd == 5) run }
syscall -qx read
VOIR EGALEMENT
%program, assoccmd, delete, disable, enable, events, liste_proc
++
++ regs
NOM
regs - affiche le contenu des registres du processeur.
RESUME
regs [-p liste_proc]
DESCRIPTION
Affichage hexadΘcimal du contenu des registres du processeur pour
les processus spΘcifiΘs (par dΘfaut: %proc).
VOIR EGALEMENT
dis, dump, liste_proc
++
++ stack
NOM
stack - affiche le retour des appels de fonction.
RESUME
stack [-p liste_proc] [-f trame] [-c nombre] [-a adresse ] [ -s pile ]
DESCRIPTION
Affiche les fonctions actives pour les processus indiquΘs (%proc par
dΘfaut). Cet affichage comprend leurs noms, ainsi que les noms et les
valeurs des arguments et le numΘro de ligne ou d'adresse active dans
chaque fonction. Les noms des fonctions, les noms des arguments et les
numΘros de ligne peuvent ne pas Ωtre disponibles lorsque les
informations symboliques sont insuffisantes.
"nombre" spΘcifie le nombre de trames α afficher. Si aucun chiffre n'est
indiquΘ, l'affichage est effectuΘ pour toute la pile. L'option -f
spΘcifie le numΘro de trame par lequel doit commencer l'affichage. La
numΘrotation des trames commence par 0 pour le bas de la pile (trame
initiale).
Les options -a et -s vous permettent de spΘcifier une adresse de dΘpart
(compteur du programme) et/ou une valeur de dΘpart pour le pointeur de
la pile. Ceci est parfois utile lorsque l'on essaye d'obtenir un
traτage de la pile pour un processus qui a effectuΘ un saut α une
adresse non-admise ou un processus dont le pointeur de pile a ΘtΘ
altΘrΘ. Ces deux options ont besoin d'une adresse en base hexadΘcimale.
EXEMPLES
stack -p p2
stack -f 2 -c 3
stack -a 0x80494958 -s 0xbfff8004
VOIR EGALEMENT
liste_proc
++
++ while
NOM
while - boucle conditionnelle.
RESUME
while (expr) cmd
DESCRIPTION
L'Θvaluation de "expr" s'effectue en langage actuel (%lang ou %db_lang)
dans le contexte du processus actuel (%proc). Si "expr" est vrai, "cmd"
est exΘcutΘe. Cette sΘquence se rΘpete ensuite. "cmd" peut correspondre
α une commande simple ou α un bloc.
EXEMPLES
while ($foo < 10) { print $foo, a[$foo]; set $foo = $foo + 1 }
VOIR EGALEMENT
%db_lang, %lang, bloc, break, continue, expr, if, scope
++
++ cd
NOM
cd - change le rΘpertoire de travail actuel.
RESUME
cd [nom_chemin]
DESCRIPTION
cd change le rΘpertoire de travail actuel du dΘbogueur en celui qui
est spΘcifiΘ par "nomchemin". Si aucun rΘpertoire n'est donnΘ, cd utilise
le rΘpertoire spΘcifiΘ par la variable d'environnement HOME.
VOIR EGALEMENT
pwd
++
++ change
NOM
change - modifie un ΘvΘnement existant.
RESUME
change num_ΘvΘnement [-p liste_proc] [-evqx] [-c nombre]
[expr_stop|call...|signal...] [{commandes}]
DESCRIPTION
num_ΘvΘnement doit Ωtre au dΘbut et correspond au numΘro d'un ΘvΘnement
existant et correct. Les autres options vous permettent de modifier les
divers attributs de cet ΘvΘnement:
1) la liste des processus auxquels il s'applique (-p),
2) la verbose (-q pour pas de verbose, -v pour verbose),
3) pour les appels systΦme, si l'ΘvΘnement doit se produire α
l'entrΘe de l'appel, α sa sortie ou aux deux α la fois (-ex),
4) pour les ΘvΘnements stop et les appels systΦme le nombre d'occurences
de l'ΘvΘnement avant qu'il soit annoncΘ (-c),
5) ainsi que l'expression, la liste d'appels systΦme ou la liste de
signaux associΘs α un ΘvΘnement. Pour finir
6) les commandes associΘes, qui devront Ωtre entre accolades {}.
EXEMPLES
change 3 -q
change 5 -p p2 -c 10
change 7 { print "x == ", x }
change 9 -x write
VOIR EGALEMENT
assoccmd, delete, disable, enable, events, onstop,
liste_proc, signal, stop, syscall
++
++ export
NOM
export - ajoute un ensemble nom/valeur α l'environnement.
RESUME
export $nom_utilisateur
DESCRIPTION
La command "export" exporte une variable dΘfinie par
l'utilisateur et gΘrΘe par le dΘbogueur dans l'environnement. La
variable "nom_utilisateur" , ainsi que sa valeur actuelle, font alors
partie de l'environnement qui est reτu par le processus crΘΘ par
le dΘbogueur. Si la valeur de $nom_utilisateur change, elle doit Ωtre
exportΘe de nouveau, afin que la nouvelle valeur fasse partie de
l'environnement. Notez que "nom_utilisateur" est exportΘe sans le
prΘfixe "$".
VOIR EGALEMENT
uservars
++
++ fc
NOM
fc - recherche, modifie et exΘcute de nouveau des commandes.
RESUME
fc [-e ename] [-nlr] [premiΦre [derniΦre]]
fc -e - [old=new] [commande]
DESCRIPTION
"fc" permet d'utiliser des commandes d'Θdition et de rappel de
style ksh(1). Sous sa premiΦre syntaxe, un groupe de commandes de
"premiΦre" α "derniΦre" sont sΘlectionnΘes α partir des derniΦres
commandes HISTSIZE qui ont ΘtΘ entrΘes. Les arguments "premiΦre" et
"derniΦre" peuvent Ωtre spΘcifiΘs, soit en tant que chaεne de
caractΦres, soit en tant que numΘros. Une chaεne de caractΦres
est utilisΘe pour localiser les commandes les plus rΘcentes en
commenτant par la chaεne spΘcifiΘe. Un chiffre nΘgatif peut Ωtre
donnΘ en tant que dΘcalage α partir du numΘro de la commande
actuelle.
Si l'option -l est spΘcifiΘe, les commandes sont affichΘes sur la
sortie standard. Autrement, l'Θditeur "ename" est lancΘ sur un fichier
temporaire contenant les commandes. Si "ename" n'est pas fourni, la
valeur de la variable d'environnement FCEDIT (par dΘfaut: /usr/bin/ed)
est utilisΘe comme Θditeur. Lorsque l'Θdition est terminΘe, les
commandes ΘditΘes sont exΘcutΘes.
Si "premiΦre" n'est pas spΘcifiΘe, la valeur par dΘfaut est la commande
prΘcΘdente pour l'Θdition et -16 pour l'affichage. L'option -r inverse
l'ordre des commandes ; l'option -n supprime le numΘro des commandes
lors de l'affichage.
Dans sa deuxiΦme syntaxe, la "commande" est exΘcutΘe de
nouveau aprΦs que la substitution "old=new" (ancienne=nouvelle)
ait eu lieu. Si la commande n'est pas spΘcifiΘe, la valeur par
dΘfaut est la commande prΘcΘdente.
VOIR EGALEMENT
%mode
++
++ logoff
NOM
logoff - arrΩte la consignation des sessions.
RESUME
logoff
DESCRIPTION
Arrete la consignation des sessions.
VOIR EGALEMENT
logon
++
++ logon
NOM
logon - lance la consignation des sessions.
RESUME
logon [fichier_consignation]
DESCRIPTION
Lance la consignation des sessions. Toutes les sorties du
dΘbogueur sont envoyΘes dans un "fichier_consignation". Chaque
ligne de sortie est prΘcΘdΘe d'un signe "#" (commentaire). Les
commandes du dΘbogueur sont Θgalement envoyΘes dans le
fichier_consignation, mais sans Ωtre prΘcΘdΘes du signe "#". Si
le nom d'un fichier de consignation n'est pas spΘcifiΘ, le
dernier fichier de consignation utilisΘ par la session de
dΘbogage actuelle est celui qui sera utilisΘ. Les nouvelles
commandes et les nouvelles sorties sont ajoutΘes α ce fichier.
Les fichiers de consignation peuvent Ωtre utilisΘs comme script
de commande pour le dΘbogueur.
VOIR EGALEMENT
logoff, script
++
++ onstop
NOM
onstop - l'action se poursuit lorsque le processus s'arrΩte.
RESUME
onstop [-p liste_proc] [commande]
DESCRIPTION
Si aucun argument n'est spΘcifiΘ pour "commande", liste les actions
onstop en cours pour la liste des processus indiquΘs par "liste_proc".
"commande" peut correspondre α une commande simple ou α un bloc. Si une
commande ou un bloc est indiquΘ, ces commandes seront exΘcutΘes α
chaque arrΩt d'un processus (dans le contexte de ce processus). L'arrΩt
comprend l'exΘcution pas α pas et l'arrΩt d'un autre ΘvΘnement dΘbogueur
(signal, syscall,stop).
A la diffΘrence de ce qui se produit pour la plupart des commandes, si
l'option -p n'est pas fournie α la commande onstop, celle-ci va
s'appliquer α tous les processus dΘrivΘs du programme actuel (%program).
EXEMPLES
onstop -p p2
onstop { print i, x[i] }
VOIR EGALEMENT
%program, delete, disable, enable, events, signal, stop, syscall
++
++ rename
NOM
rename - change le nom sous lequel un programme est connu.
RESUME
rename nom_prog nom
DESCRIPTION
Lorsqu'un processus est saisi ou crΘΘ, le nom de
l'exΘcutable dont dΘrive ce processus peut Ωtre utilisΘ pour
servir de rΘfΘrence α tous les processus qui dΘrivent de cet
exΘcutable et servir dans toute liste de processus (liste_proc).
rename spΘcifie le nouveau nom de ce programme.
VOIR EGALEMENT
create, grab, liste_proc
++
++ %file
NOM
%file - le fichier source actuel.
DESCRIPTION
%file est dΘfini par le nom du fichier source associΘ α la
trame actuelle, le cas ΘchΘant, lorsqu'un processus s'arrΩte ou lorsque
%frame est modifiΘ. Chaque processus a son propre fichier %file. La
premiΦre commande "list" aprΦs la dΘfinition de %frame, affichera la
source α partir de %file si aucun nom de fichier n'est indiquΘ. Vous ne
pouvez pas modifier %file de faτon explicite.
VOIR EGALEMENT
%frame, %line, %list_file, %list_line, list
++
++ %follow
NOM
%follow - est-ce que le dΘbogueur doit suivre les processus enfants ?
DESCRIPTION
Le dΘbogueur contr⌠le pour l'utilisateur les processus qui ont
ΘtΘ crΘΘs par le dΘbogueur (avec la commande "create"), ou pris
en charge (avec la commande "grab") alors qu'il Θtait dΘja en
train de s'exΘcuter. Si %follow est suivi soit de "all" soit de
"procs", le dΘbogueur prend Θgalement le contr⌠le des processus
enfant de tout les processus sous contr⌠le qui utilisent la
duplication ("fork"). Si %follow est suivi de "none", aucun
processus enfant ne sera controlΘ. Le mode global de contr⌠le mis
en place par %follow peut Ωtre remplacΘ par des commandes
"create" ou "grab" individuelles. Tous les processus contr⌠lΘs
peuvent Ωtre libΘrΘs avec la commande "release".
La valeur par dΘfaut de %follow est "all".
VOIR EGALEMENT
create, grab, release, set
++
++ %frame
NOM
%frame - le numΘro de la trame actuelle dans la pile d'appel.
RESUME
Indique la portΘe par dΘfaut pour les listings source, les tables
de symboles, le dΘsassemblage et l'Θvaluation de l'expression.
%frame est dΘfini par le numΘro de la trame supΘrieure (en
comptant α partir de 0 pour "_start") lorsqu'un processus
s'arrΩte. Chaque processus a sa propre %frame. Vous pouvez
dΘfinir %frame de faτon explicite via la commande "set". La
dΘfinition de %frame va Θgalement redΘfinir les variables
associΘes %db_lang, %file, %func, %line et %loc pour maintenir
une perspective logique du contexte actuel.
VOIR EGALEMENT
%db_lang, %file, %func, %line, %loc
++
++ %func
NOM
%func - la fonction actuelle.
DESCRIPTION
%func est dΘfini par le nom de la fonction correspondant α la
trame actuelle (%frame) , dΦs qu'un processus s'arrΩte ou que
%frame est modifiΘ. Chaque processus a son propre %func. Vous
pouvez dΘfinir %func de faτon explicite via la commande "set",
mais uniquement pour une fonction ayant une trame active dans la
pile ; %frame (ainsi que les variables associΘes %db_lang, %file,
%func, %line et %loc) sera mis α jour afin de reflΘter le nouveau
contexte.
VOIR EGALEMENT
%frame
++
++ %lang
NOM
%lang - le langage actuel.
DESCRIPTION
Indique le langage actuel. S'il est dΘfini, il se substitue α la valeur
donnΘe par %db_lang. Les chaεnes possibles sont les suivantes:
C ANSI C
C++ C++ version 2
Si %lang n'a pas ΘtΘ dΘfini ou dΘfini par la chaεne nulle (""), le
dΘbogueur utilise %db_lang comme langage actuel. Les commandes
utilisant %lang dans l'Θvaluation d'expressions comportent if, print,
set, stop, while.
VOIR EGALEMENT
%db_lang, expr
++
++ %loc
NOM
%loc - l'emplacement actuel.
DESCRIPTION
Indique le point d'exΘcution actuel, %loc est dΘfini par le contenu du
"program counter" (compteur du programme) pour la trame actuelle
lorsqu'un processus s'arrΩte ou lorsque %frame est modifiΘ. Chaque
processus a son propre %loc. Vous ne pouvez pas modifier %loc de faτon
explicite. La premiΦre commande "dis" aprΦs la dΘfinition des %frame va
dΘsassembler les instructions commenτant α %loc, si aucun emplacement
n'est donnΘ de faτon explicite.
VOIR EGALEMENT
%frame, dis
++
++ %list_file
NOM
%list_file - le nom du fichier qui a ΘtΘ listΘ en dernier.
DESCRIPTION
%list_file garde une trace du dernier fichier affichΘ par la
commande list. %list_file change α chaque fois que la commande
list est exΘcutΘe et revient sur le nom du fichier contenant
l'emplacement actuel (%loc) dans la trame actuelle (%frame) α
chaque fois qu'un chemin d'exΘcution (ou un processus ne
contenant qu'un seul chemin d'exΘcution) s'arrΩte ou que %frame
est modifiΘe. Chaque chemin d'exΘcution (ou chaque processus ne
contenant qu'un seul chemin d'exΘcution) possΦde sa propre
%list_file.
VOIR EGALEMENT
%file, %frame, %line, %list_line, list
++
++ %list_line
NOM
%list_line - affiche le numΘro de la derniΦre ligne affichΘe.
DESCRIPTION
%list_line garde la derniΦre ligne affichΘe par la commande
"list". %list_line change quand la commande "list" est exΘcutΘe
et est aussi rΘinitialisΘ au numΘro de ligne qui contient
l'emplacement actuel (%loc) de la trame actuelle (%frame) quand
un processus s'arrΩte ou une %frame est changΘe. Chaque processus
a son propre %list_line.
VOIR EGALEMENT
%file, %frame, %line, %list_file, list
++
++ %line
NOM
%line - le numΘro de la ligne actuelle.
DESCRIPTION
%line est dΘfini par le numΘro de ligne de l'emplacement actuel (%loc)
dans la trame actuelle (%frame) lorsqu'un processus s'arrΩte ou lorsque
%frame est modifiΘ. Chaque processus a son propre %line. La premiΦre
commande "list" aprΦs la dΘfinition de %frame va afficher la source
commenτant α %line si aucun emplacement n'est spΘcifiΘ. Vous ne pouvez
pas dΘfinir %line de faτon explicite.
VOIR EGALEMENT
%frame, %file, %list_file, %list_line, list
++
++ %mode
NOM
%mode - le mode d'Θdition de la ligne actuelle.
DESCRIPTION
Debug gΦre les historiques de commandes (ainsi que l'Θdition des commandes)
du style ksh(1). %mode est le mode d'Θdition utilisΘ pour l'Θdition des
lignes de commande. %mode contient la valeur de la variable
d'environnement VISUAL ou, si cette derniΦre n'existe pas, la valeur de
la variable d'environnement EDITOR. Cette valeur peut Ωtre modifiΘe α
tout moment en utilisant la commande "set". Les valeurs correctes
sont "vi" et "emacs". Toute autre valeur de %mode interdira l'Θdition
des commandes.
VOIR EGALEMENT
fc
++
++ %path
NOM
%path - le chemin de recherche local pour les fichiers sources.
DESCRIPTION
Chaque programme possΦde son propre %path. La valeur de %path est
une liste de noms de rΘpertoires, sΘparΘs par deux points.
Lorsque le dΘbogueur tente d'afficher les lignes de code source α
partir d'un fichier, il va chercher dans les rΘpertoires indiquΘs
dans %path un fichier avec le nom correct. Apres avoir recherchΘ
la liste des chemins d'accΦs locaux pour le programme indiquΘ, le
dΘbogueur va chercher dans sa liste globale de chemin d'accΦs
(%global_path).
VOIR EGALEMENT
%global_path
++
++ %proc
NOM
%proc - le processus actuel.
DESCRIPTION
Cette variable contient le nom du processus actuel. Elle peut Ωtre
dΘfinie de faτon explicite α l'aide de la commande "set" ou de faτon
implicite α l'aide de "create", "grab" ou "release". La dΘfinition de
%proc dΘfinit Θgalement de faτon implicite %program et %frame.
VOIR EGALEMENT
%frame, %program, liste_proc
++
++ %program
NOM
%program - le programme actuel.
DESCRIPTION
Cette variable comporte le nom du programme qui contient le processus
actuel (%proc). Vous pouvez modifier ce nom de faτon explicite en
utilisant la commande "set" ou de faτon implicite avec les commandes
"create", "grab" ou "release". Les programmes sont nommΘs d'aprΦs le
fichier exΘcutable dont ils dΘrivent et peuvent Ωtre renommΘs avec la
commande "rename". La dΘfinition de %program redΘfinit Θgalement de
faτon implicite %proc, %thread et %frame.
VOIR EGALEMENT
%proc, liste_proc
++
++ %prompt
NOM
%prompt - l'invite du dΘbogueur.
DESCRIPTION
Le dΘbogueur demande α l'utilisateur une entrΘe en affichant la valeur
de %prompt. La valeur par dΘfaut est "debug>". Vous pouvez changer la
valeur de %prompt avec la commande "set".
++
++ %thisevent
NOM
%thisevent - le numΘro de l'ΘvΘnement qui est gΘrΘ actuellement.
DESCRIPTION
Avec une commande associΘe, %thisevent Θvaluera le numΘro de l'ΘvΘnement
auquel les commandes sont associΘes. Vous ne pouvez pas modifier la
valeur de %thisevent de maniΦre explicite.
VOIR EGALEMENT
%lastevent, assoccmd
++
++ %lastevent
NOM
%lastevent - le numΘro de l'ΘvΘnement crΘΘ le plus rΘcent.
DESCRIPTION
Apres une commande qui alloue un numΘro d'ΘvΘnement (stop,
signal, syscall ou onstop), %lastevent Θvaluera jusqu'αu numΘro
qui vient d'Ωtre allouΘ. Vous ne pouvez pas modifier la valeur
de %lastevent de maniΦre explicite.
VOIR EGALEMENT
%thisevent
++
++ assoccmd
NOM
assoccmd - une commande du dΘbogueur ou un bloc.
DESCRIPTION
Plusieurs commandes acceptent de maniΦre optionnelle une commande
ou des blocs de commandes associΘs. Ces commandes doivent
apparaitre en dernier dans la liste des arguments et comprendre
des commandes possΘdant leurs propres comandes associΘes - ce qui
revient α dire que les commandes associΘes peuvent Ωtre
imbriquΘes. Les commandes seront exΘcutΘesα chaque fois que les
ΘvΘnements en cause (stop, signal, etc.) se produiront. A
l'intΘrieur d'une commande associΘe, %thisevent contient le
numΘro de l'ΘvΘnement traitΘ. Le chemin d'exΘcution ou le
processus qui rencontre l'ΘvΘnement devient temporairement le
processus actuel lorsque les commandes seront exΘcutΘes.
VOIR EGALEMENT
%thisevent, bloc, onstop, signal, stop, syscall
++
++ bloc
NOM
bloc - une liste de commandes.
DESCRIPTION
Une commande ou une liste de commandes sΘparΘes par des
points-virgules et entre accolades. Les blocs peuvent Ωtre
utilisΘs comme commandes associΘes (which see) ou peuvent
apparaεtre indΘpendamment d'autres commandes. Les blocs peuvent
Ωtre utilisΘs pour regrouper des commandes afin de rediriger leur
sortie avec une seule redirection (which see).
EXEMPLES
{ if (i) print *ptr; else print *mptr } > myfile
VOIR EGALEMENT
assoccmd, redirection
++
++ format
NOM
format - le format de la sortie de la commande "print".
DESCRIPTION
Le format est une chaεne de caractΦres similaire α celle qui est aceptΘe
par la routine printf du langage C. Chaque format doit avoir
la syntaxe suivante:
%[flags][width][.[precision]][conversion_character]
format_character
Tous les champs doivent avoir la mΩme signification que dans la routine
printf. La largeur et la prΘcision sont limitΘs α 1024. Les paramΦtres
depositionnement de printf et les caractΦres au format 'n' ne sont
pasacceptΘs. Chaque type de format correspond α l'une des expressions
donnΘes dans la commande print, dans l'ordre dans lequel ils apparaissent
Les caractΦres qui ne font pas partie des dΘfinitions de format sont
imprimΘs tel quel. Les caractΦres de formatage ont les significations:
c caractΦre non signΘ
d,i entier dΘcimal signΘ
e,E virgule flottante du style [-]d.ddde+/-dd
f virgule flottante du style [-]ddd.dddd
g,G virgule flottante dans l'un des styles ci-dessus
o entier octal non signΘ
p void * (pointeur gΘnΘral ; adresse hexadΘcimale)
s chaεne de caractΦres
u entier dΘcimal non signΘ
x,X entier hexadΘcimal non signΘ
z dΘbogueur style par dΘfaut pour l'expression
% %
VOIR EGALEMENT
print
++
++ emplacement
NOM
emplacement - un adresse α l'intΘrieur d'un processus.
DESCRIPTION
La syntaxe d'un indicateur d'adresse est:
adresse[+-constante]
[nom_proc@][nom_fichier@]ligne
[nom_proc@][nom_fichier@]fonction[+-constante]
Ici "adresse" correspond α l'adresse d'un programme octal ou hexadΘcimal
et "constante" est un entier dΘcimal.
EXEMPLES
17 un numΘro de ligne du fichier actuel (%file)
foo.c@17 un numΘro de ligne dans un autre fichier
0x80801234 une adresse
main un nom ou une Θtiquette de fonction
main+3 trois octets aprΦs l'Θtiquette
p1@main un nom de fonction dans un processus spΘcifiΘ
%loc l'emplacement actuel
%line le numΘro de ligne et de fichier actuels
%r0 un registre
%r0+80 un registre plus un dΘcalage
%pc-4 un registre moins un dΘcalage
$myvar une variable dΘfinie par l'utilisateur
VOIR EGALEMENT
%file, %line, %loc, liste_proc, scope, uservars
++
++ liste_proc
NOM
liste_proc - une liste des noms de processus.
DESCRIPTION
Une liste de "procnames" (noms de processus), sΘparΘs par des virgules.
La plupart des commandes acceptent une "liste_proc" avec l'option -p.
Une liste de ce genre ne doit pas contenir de blancs.
Un nom de processus (procname) peut Ωtre dΘfini par:
1) le mot clΘ "all", signalant tous les processus sous contr⌠le,
2) un nom de programme gΘnΘrΘ par un utilisateur ou un dΘbogueur,
indiquant tous les processus dΘrivΘs de ce programme,
3) un id processus gΘnΘrΘ par le dΘbogueur sous la forme pn (c.α.d. p1,
p2...),
4) la variable %program du dΘbogueur, indiquant tous les processus
dΘrivΘs du programme actuel,
5) la variable %proc du dΘbogueur, indiquant le processus actuel,
6) un entier dΘcimal correspondant α l'id du processus systΦme d'un
processus sous contr⌠le,
7) toute variable dΘfinie par un utilisateur (c.α.d. $foo) ayant la
valeur d'un entier, interprΘtΘe comme id de processus systΦme,
8) toute variable dΘfinie par un utilisateur avec la valeur de la chaεne
pouvant s'interprΘter comme une ou plusieurs des formes dΘcrites
ci-dessus.
VOIR EGALEMENT
liste_proc, %proc, %program, rename, uservars
++
++ redirection
NOM
redirection - changement de la destination de la sortie du dΘbogueur.
DESCRIPTION
Une commande ou un bloc de commandes, peut recevoir le suffixe ">",
suivi d'un nom de fichier ou un "|" et une invite du Shell UNIX(r).
Ceci entraεne une redirection de la sortie en direction du fichier ou
l'envoi de cette sortie sur une invite. Vous pouvez Θgalement utiliser
">>", qui ajoute la sortie α la fin du fichier, au lieu d'en remplacer
le contenu, le cas ΘchΘant.
EXEMPLES
stack > save.stack
symbols -gtv | grep int | pg
VOIR EGALEMENT
bloc
++
++ modΦle
NOM
modΦle - une expression de recherche de style sh(1).
DESCRIPTION
Un ensemble de caractΦres utilisΘ pour filtrer la sortie des commandes
"symbols".
* Remplace tous les caractΦres, y compris la chaεne "null".
? Remplace un seul caractere.
[...] Remplace les caractΦres compris entre les crochets, les
registres Θtant acceptΘs et ! en tant que premier
caractere indiquant la nΘgation
VOIR EGALEMENT
symbols
++
++ expr_rΘg
NOM
expr_rΘg - une expression de recherche de style ed(1).
DESCRIPTION
Une expression de recherche est utilisΘe pour rechercher un modΦle dans
un fichier source avec la commande "list".
. Est l'Θquivalent d'un caractere quelconque, α
l'exception d'une fin de ligne
[...] Est l'Θquivalent d'un (ou de plusieurs) des caractΦres
compris entre crochets, les registres Θtant acceptΘs
et ^ indiquant une nΘgation
* Indique zΘro ou plusieurs occurences des expressions
prΘcΘdentes
^ Est l'Θquivalent du caractere "null" au dΘbut d'une
ligne
$ Est l'Θquivalent du caractere "null" α la fin d'une
ligne
\{m\} Est l'Θquivalent de m occurences des expressions
prΘcΘdentes
\{m,\} Indique au moins m occurences des expressions de
recherche prΘcΘdentes
\{m,n\} Est l'Θquivalent des occurences de m jusqu'α n (compris)
\(...\) Est la mΩme Θquivalence que ...
\nombre Est l'Θquivalent de la ΘniΦme expression entre
parenthΦses de la mΩme expression
\< Est l'Θquivalent de la chaεne "null" en dΘbut de mot
\> Est l'Θquivalent de la chaεne "null" α la fin d'un mot
VOIR EGALEMENT
list
++
++ uservars
NOM
uservars - variables dΘfinies par l'utilisateur et gΘrΘes par le
dΘbogueur.
DESCRIPTION
Les noms commenτant par dollar ($) sont rΘservΘs α l'utilisateur
du dΘbogueur. Au dΘmarrage, le dΘbogueur importe l'environnement
du shell en tant qu'ensemble initial de variables dΘfinies par
l'utilisateur. Vous pouvez crΘer une nouvelle variable avec la
commande "set". Les variables dΘfinies par l'utilisateur sont de
type "chaεne de caractΦres" ; elles sont converties en valeurs
nuΘmriques chaque fois que cela est nΘcessaire avec strtol(3).
VOIR EGALEMENT
export, set
++
++ %db_lang
NOM
%db_lang - la variable interne du dΘbogueur correspondant
au langage actuel.
DESCRIPTION
%db_lang est le langage de l'objet actuel et est utilisΘ par le
dΘbogueur pour l'Θvaluation des expressions de langage. Il est dΘfini
par le dΘbogueur en fonction des informations contenues dans le fichier
objet lui-mΩme. Si le dΘbogueur ne peut pas dΘterminer le langage de
l'objet actuel, %db_lang prend par dΘfaut la valeur C. Si %lang est
dΘfini explicitement, il a prioritΘ sur le langage de l'objet actuel.
Les commandes faisant intervenir %db_lang dans l'Θvaluation
d'expressions comportent if, print, set, stop, whatis et while.
VOIR EGALEMENT
%lang, C++, expr
++
++ %global_path
NOM
%global_path - le chemin de recherche global du dΘbogueur.
DESCRIPTION
La valeur de %global_path doit Ωtre une liste de noms de
rΘpertoires, sΘparΘs par deux points (":"). Lorsque le dΘbogueur
tente d'afficher le code source provenant d'un fichier, il va
chercher dans les rΘpertoires indiquΘs par le %path local les
fichiers portant le mΩme nom que le programme. Apres avoir
cherchΘ dans la liste locale, le dΘbogueur va chercher dans la
liste globale de recherche (%global_path). %global_path peut
Θgalement Ωtre modifiΘ α l'invite du dΘbogueur avec l'option -s.
VOIR EGALEMENT
%path
++
++ %num_bytes
NOM
%num_bytes - le nombre d'octets α afficher par dΘfaut.
DESCRIPTION
Si la commande "dump" n'est pas donnΘe avec l'option -c, elle n'affiche
que %num_bytes octets. La valeur initiale de %num_bytes est 256 et
elle peut Ωtre modifiΘe avec la commande "set".
VOIR EGALEMENT
dump
++
++ %num_lines
NOM
%num_lines -- nombre de lignes α afficher.
DESCRIPTION
Si la commande "dis" ou la commande "list" sont donnΘes sans
l'option -c, chaque commande affiche un nombre de lignes
Θquivalent α %num_lines. La valeur initiale de %num_lines est de
10 et cette valeur peut Ωtre modifiΘe avec la commande "set".
VOIR EGALEMENT
dis, list
++
++ %result
NOM
%result - Θtat de l'exΘcution de commandes du dΘbogueur.
DESCRIPTION
Apres l'exΘcution de chaque commande du dΘbogueur, le rΘsultat de
son exΘcution est conservΘ en %result. 0 indique une exΘcution
rΘussie. Une autre valeur que 0 indique un Θchec lors de
l'exΘcution.
++
++ %verbose
NOM
%verbose - niveau de dΘtails des ΘvΘnements du dΘbogueur.
DESCRIPTION
Lorsqu'un processus sous contr⌠le du dΘbogueur s'arrΩte, un message
indiquant la raison de cet arrΩt s'affiche, ainsi que l'id du processus
et la ligne source suivante, le cas ΘchΘant, ou la ligne de texte
dΘsassemblΘ suivante. %verbose permet de contr⌠ler le contenu de ce
message. Les valeurs possibles sont:
quiet pas de message α l'arrΩt d'un processus,
source seule la source suivante ou la ligne de dΘsassemblage
s'affichent,
events si un ΘvΘnement a provoquΘ l'arrΩt, il est Θgalement
affichΘ (ceci ne vaut pas pour les ΘvΘnements stop
demandΘs, halts ou single steps),
reason la raison pour laquelle cet arrΩt s'est produit,
ainsi que les ΘvΘnements et les stops demandΘs,
all fournit tous les dΘtails disponibles (gΘnΘralement
Θquivalente α reason)
Le mode par dΘfaut est "reason". Le mode quiet peut Θgalement Ωtre
spΘcifiΘ comme option -q pour certaines commandes du dΘbogueur. Ces
options -q individuelles ont la prioritΘ sur le mode verbose.
VOIR EGALEMENT
change, signal, step, stop, syscall
++
++ %wait
NOM
%wait - exΘcution synchrone ou asychrone des commandes.
DESCRIPTION
Lorsque le dΘbogueur exΘcute un processus, il va normalement attendre
que le processus s'arrΩte pour rendre la main α l'utilisateur. Si %wait
est dΘfini par "background", 0 ou "no", le dΘbogueur passe en mode
asynchrone. En mode asynchrone, les commandes lanτant un processus
repassent immΘdiatement sous contr⌠le de l'utilisateur, sans attendre
l'arrΩt du processus. Le mode par dΘfaut est restaurΘ si %wait est
dΘfini par "foreground", 1 ou "yes". Les options -f et -b des commandes
run et step ont la prioritΘ sur %wait global.
VOIR EGALEMENT
run, step
++
++ expr_stop
NOM
expr_stop - traitement de l'espace adresse des expressions
d'ΘvΘnements
DESCRIPTION
Les expr_stop sont des expressions spΘciales qui sont acceptΘes
par la commande stop. Une expr_stop consiste en un ou plusieurs
ΘvΘnements, joints par les opΘrateurs spΘciaux && (and) ou ||
(or). Ces opΘrateurs sont associΘs α gauche (left-associative),
mais le dΘbogueur ne garantit pas l'ordre dans lequel leurs
opΘrandes seront ΘvaluΘs. Chaque ΘvΘnement peut Ωtre:
emplacement ( expr ) *lvalue
Chaque type d'ΘvΘnement stop possΦde une action qui lui permettra d'Ωtre
pris en compte par le dΘbogueur. Lorsqu'une action de ce type a lieu,
l'expression stop toute entiere est ΘvaluΘe afin de dΘterminer si elle
est "vraie". Si cela est le cas, l'ΘvΘnement se dΘclenche de la maniere
normale (le dΘbogueur informe alors l'utilisateur de l'ΘvΘnement et
exΘcute les commandes associΘes).
un "emplacement" correspond α une adresse dans le texte du processus
o∙ le dΘbogueur peut dΘfinir un point d'interruption. Lorsque le
processus atteint ce point, le dΘbogueur prend note de cet ΘvΘnement.
Si α cet emplacement, les stop_events s'appliquent α une fonction,
l'expression est vraie aussi longtemps que la fonction est active. Si α
cet emplacement, les stop_events s'appliquent α une adresse ou α un
numΘro de ligne prΘcis, l'expression est vraie uniquement lorsque le
processus atteint cette adresse ou cette ligne. Tapez "help emplacement"
pour obtenir la syntaxe complΦte de la commande emplacement. Lorsque le
langage actuel est C++, les emplacements des ΘvΘnements_d'arrΩt peuvent
faire intervenir des fonctionnalitΘs spΘcifiques α ce langage. Tapez
"help C++" pour plus de dΘtails.
"expr" peut Ωtre une expression correct dans le langage actuel (%lang ou
%db_lang). Le dΘbogueur remarque le stop_event lorsque l'un des
identificateurs compris dans l'expression voit sa valeur modifiΘe.
L'expression entiere est ensuite ΘvaluΘe dans le contexte du langage
actuel.
"lvalue" peut Ωtre une expression quelconque dans le langage actuel qui
serait correcte α gauche d'une dΘclaration d'assignement dans ce
langage. Le dΘbogueur remarque cet ΘvΘnement lorsque le contexte de
l'emplacement change. Le changement en lui-mΩme rend vrai cette sorte
de stop_event.
Des expr_stop plus puissantes peuvent Ωtre crΘΘes en combinant des
stop_events avec des opΘrateurs && (and). Par exemple, pour s'arrΩter α
l'intΘrieur d'une fonction a alors que la fonction b est Θgalement
active, tapez "stop a && b". Pour s'arrΩter lorsque la valeur d'une
expression x devient vraie α l'intΘrieur d'une fonction y, tapez "stop
y && (x)".
EXEMPLES
stop myfile.c@230
stop *bar
stop (x == 5)
stop foo && (a > 7)
stop (a == 4) || (b == 7)
VOIR EGALEMENT
%db_lang, %lang, C++, expr, emplacement, scope, stop
++
++ %redir
NOM
%redir - le processus d'E/S doit-il Ωtre redirigΘ ?
DESCRIPTION
%redir contr⌠le le comportement de la commande create. Par dΘfaut, la
commande create ne redirige pas les E/S d'un processus qu'elle vient
de crΘer, α oins que l'option -r ne soit indiquΘe. Si %redir possΦde
la valeur 1 ou "yes", create redirigera les E/S du processus, α
moins que l'option -n ne soit indiquΘe. Le comportement par dΘfaut peut
Ωtre remis en place en remettant %redir sur 0 ou sur "no".
VOIR EGALEMENT
create, grab, input
++
++ expr
NOM
expr - expressions du dΘbogueur
DESCRIPTION
Les expressions du dΘbogueur suivent la syntaxe et la sΘmantique
du langage actuel (%lang ou %db_lang). Le dΘbogueur accepte les
expressions contenant des combinaisons de variables et de
fonctions du programme, de noms qualifiΘs, de variables internes
au dΘbogueur et des variables internes au dΘbogueur dΘfinies par
l'utilisateur. Un nom qualifiΘ indique un identificateur du
programme qui ne sera pas visible dans le contexte actuel. La
syntaxe de ces noms qualifiΘs est la suivante:
[[thread_id]@][[fichier_source]@][[fonction]@][[num_ligne]
@]identifier
ou [[thread_id]@]num_trame@identifier
ou [[thread_id]@]nom_objet@[fichier_source@]identifier
Le nom qualifiΘ est ΘvaluΘ de gauche α droite et les ambigⁿitΘs peuvent
Ωtre levΘes par la dΘfinition de @. "num_trame" et "fonction" doivent
correspondre α des fonctions actives. "nom_objet" indique tout objet
(fichier exΘcutable ou bibliothΦque partagΘe) composant le processus.
Lorsque le langage employΘ est le C, la commande "debug" gΦre
l'Θvalustion de toutes les expressions correctes en C ANSI, α
l'exception de celles qui impliquent des extensions par macro, par
structure ou par ΘnumΘrations de dΘclarations de types.
Un exemple de dΘclaration de type, dans une expression est la suivante:
((struct { int i; char c; } *)p)->c = 'a';
Lorsque le langage actuel est C++, le dΘbogueur accepte un
sous-ensemble d'expressions C++. Pour plus de dΘtails, reportez-vous α
C++.
Lorsque l'expression commenτe par un tiret (-) ou contient des
caractΦres ayant une signification spΘciale pour le dΘbogueur, elle
doit Ωtre entre parenthΦses, entre accolades ou entre crochets. Les
caractΦres ayant une signification spΘciale sont les suivants: >, >>,
|, ||, &&, #, les virgules, les points-virgules et les caractΦres de
retour chariot.
VOIR EGALEMENT
%db_lang, %lang, C++, if, print, scope, set, stop, expr_stop,
uservars, while
++
++ scope
NOM
scope - visibilitΘ d'un identificateur de programme.
DESCRIPTION
Les commandes du dΘbogueur qui acceptent des emplacements
ou des expressions peuvent rΘfΘrencer les identificateurs dans les
programmes contr⌠lΘs, comme: les fonctions, les paramΩtres, les
variables, les labels, les types, les structures et les marques d'union,
les noms de membres et les ΘnumΘrations littΘrales. Les emplacements
peuvent Θgalement rΘfΘrencer des numΘros de ligne dans le code source.
La visibilitΘ d'un nom pour le dΘbogueur, α n'importe quel moment,
dΘpend de l'Θtat du programme α ce moment (contexte) et des informations
de dΘboguage fournies par le programme au dΘbogueur.
Les numΘros de lignes du code source, les noms des variables locales
d'une fonction particuliΦre, les noms des paramΩtres, les noms des types
les structures, les Θtiquettes d'union, les noms des membres et les
ΘnumΘrations littΘrales, ne sont disponibles que si le fichier dans
lequel ils sont rΘfΘrencΘs a ΘtΘ compilΘ en indiquant l'option -g au
compilateur. Les noms des fonctions et variables statiques ou globales
sont disponibles si le fichier qui les dΘfinit a ΘtΘ compilΘ avec
l'option -g ou si la table des symboles du programme n'a pas ΘtΘ
enlevΘe.
Les numΘros des lignes du code source, les fonctions et les variables
statiques ne sont visibles que lorsque le contexte actuel est prΘsent α
l'intΘrieur du fichier, c'est-α-dire si le programme a ΘtΘ arrΩtΘ α
l'intΘrieur du code gΘnΘrΘ a partir de ce fichier. Les paramΩtres de
fonction ne sont visibles que si le contexte actuel est contenu dans
cette fonction. Les variables locales ne sont visibles que lorsque le
contexte actuel est visible α l'intΘrieur du bloc qui les dΘfinit.
Les identificateurs qui ne sont pas visibles dans le contexte courant
peuvent souvent Ωtre accΘdΘs a des emplacements ou dans des expressions
en utilisant des noms qualifiΘs. Voir "expr" et "emplacement" pour une
syntaxe complΦte.
Les symboles dΘfinis dans les bibliothΘques partagΘes ne peuvent
Ωtre visualisΘs que si ces bibliothΦques sont chargΘes par
l'Θditeur de liens dynamiques. GΘnΘralement, au premier lancement
d'un programme, seuls les symboles dΘfinis dans le programme et
dans libc.so peuvent Ωtre visualisΘs. Une fois que le programme
passe l'Θtape _start ou mΩme au delα, d'autres bibliothΦques
partagΘes sont disponibles. Les symboles des bibliothΦques
partagΘes chargΘes par des appels α dlopen(3X) ne sont
disponibles qu'aprΦs un appel.
VOIR EGALEMENT
%frame, %func, %line, expr, emplacement
++
++ whatis
NOM
whatis - affiche le type d'une expression.
RESUME
whatis [-p liste_proc] expr
DESCRIPTION
whatis affiche le type d'expression du contexte actuel (%frame).
Lorsqu'une liste de processus (liste_proc) est indiquΘe, le type
d'expression est ΘvaluΘ dans le contexte de chaque processus de cette
liste. Expr peut correspondre α une expression du langage actuel.
Si une variable est une structure ou un type de classe, "whatis
variable" affichera le nom de la structure ou de la classe. "whatis
structure_tag_name" ou "whatis type_name" affichera toutes les
informations concernant ce type, y compris les membres de la structure
et les constantes d'ΘnumΘration.
Si on lui donne en entrΘe un pointeur en direction d'une classe
d'objets possΘdant des fonctions virtuelles et que le dΘbogueur peut
dΘterminer que le type d'objet sur lequel on pointe est dΘrivΘ d'une
classe de base, whatis affichera a la fois la classe de base et la
classe dΘrivΘe.
EXEMPLES
whatis i
whatis main
whatis (i + 1) * 2.0
whatis struct foobar
VOIR EGALEMENT
%db_lang, C++, expr
++
++ C++
NOM
C++ - SpΘcificitΘ du langage C++
DESCRIPTION
Le dΘbogueur va reconnaεtre un fichier objet compilΘ α l'aide de la
version 2.0 de C++ Compilation System ou du traducteur de C++ cfront
(version 2.1 ou 3.0) et va dΘfinir le langage actuel (%db_lang)
comme Θtant C++. Les noms s'affichent comme dans la source C++ et non
comme ils apparaissent dans le fichier objet.
Lorsque le langage actuel est C++, le dΘbogueur accepte un
sous-ensemble d'expressions faisant partie de C++, parmi
lesquelles on trouve les suivantes:
o Toutes les expressions acceptΘes lorsque C constitue le langage
actuel,
o Appels adressΘs α des fonctions membre, dont font partie les
fonctions membre virtuelles et les fonctions membre statiques,
o Appels adressΘs α des fonctions surchargΘes,
o Expressions utilisant des noms de types comme typedefs,
o Expressions utilisant des fonctions opΘrateur surchargΘes et
o Expressions accΘdant aux membres des classes grΓce au pointeur
implicite "this", lorsque le processus ou le chemin d'exΘcution
est arrΩtΘ dans une fonction associΘe aux membres des classes.
Les commandes print et set ont une option -v (verbose) qui permet
d'afficher des information dΘtaillΘes, comprenant les prototypes
de toutes les fonctions appelΘes par le dΘbogueur pour
l'Θvaluation d'une expression. Cette option est particuliΦrement
utile pour une bonne comprΘhension de ce qui peut se passer dans
les expressions qui utilisent des fonctions ou des opΘrateurs
surchargΘs. Cette option -v affiche Θgalement, pour la commande
print, une structure et des membres de classe gΘnΘrΘs par
compilateur, tels que des pointeurs de tables de fonctions
virtuelles.
Lorsqu'il existe un pointeur d'objet de classe de base avec des
fonctions virtuelles et que le dΘbogueur peut dΘterminer que le
type d'objet vers lequel est dirigΘ le pointeur est une classe
dΘrivΘe de la classe de base, la commande whatis va afficher la
classe de base et le classe qui en dΘrive. La commande print va
Θgalement afficher l'objet comme d'un type dΘrivΘ.
Lors de l'impression d'une structure ou d'une classe, la commande
print va afficher les membres de classe static, en signalant
qu'il s'agit de membres statiques. Notez bien que les symboles de
-v n'affichent pas ce type de membres. Notez Θgalement que les
membres de classe gΘnΘrΘs par compilateur ne s'affichent qu'avec
l'option -v de la commande print.
Les points d'interruption (ΘvΘnements stop) peuvent se dΘfinir avec:
o des fonctions membres de classe, comprenant les fonctions
constructor, destructor et de conversion,
o des opΘrateurs surchargΘs et
o des fonctions surchargΘes qui utilisent le prototype complet ou
o des fonctions surchargΘes n'ayant pas d'information prototype.
Dans ce cas, le dΘbogueur affiche une liste de fonctions et vous
demande d'en sΘlectionner une ou la totalitΘ.
Un ΘvΘnement stop peut Θgalement Ωtre crΘΘ pour une combinaison
d'objet spΘcifique et de fonction membre en utilisant la syntaxe
"stop pointer->function" ou "stop object.function". Le dΘbogueur
n'arrΩte le processus, au moment ou la fonction est entrΘe, que
si "ce" pointeur correspond α l'objet spΘcifiΘ. S'il s'agit d'une
fonction virtuelle, le dΘbogueur dΘfinit le point d'interruption
sur la fonction de remplacement appropriΘe.
EXEMPLES
print *this
print -v ptr->overloaded_f(1, 2)
whatis ptr_to_base stop C::f(int)
stop C::C
stop C::~C
stop C::operator int()
stop C::operator+
stop ptr->f(char *)
VOIR EGALEMENT
%db_lang, expr, print, set, stop, whatis
++