Differences between revisions 1 and 17 (spanning 16 versions)
Revision 1 as of 2004-04-03 11:27:07
Size: 3626
Editor: anonymous
Comment:
Revision 17 as of 2009-03-16 03:32:36
Size: 3924
Editor: anonymous
Comment: converted to 1.6 markup
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
## page was renamed from DebFrDebug
#language fr
Line 2: Line 4:

== 10.4 Aide au débuggage ==
= Aide au débuggage =
Line 6: Line 7:
== 10.4.1 Identification du système == == Identification du système ==
Line 25: Line 26:
=== 10.4.2 Identification matérielle (PCI) === === Identification matérielle (PCI) ===
Line 46: Line 47:
=== 10.4.3 Processus en cours === === Processus en cours ===
Line 56: Line 57:
=== 10.4.4 Journal du système === === Journal du système ===
Line 62: Line 63:
Évidemment, adapter cette commande pour un autre fichier de journal particulier (/var/log/...) et utiliser une console virtuelle supplémentaire. Évidemment, adapter cette commande pour un autre fichier de journal particulier (/var/log/...)  ou cumuler les surveillances par la variante :
{{{
 tail -f /var/log/fichier1 ... /var/log/fichierN
}}}
Line 67: Line 71:
=== 10.4.5 Appels systèmes === === Appels systèmes ===
Line 70: Line 74:
appels systèmes  * appels systèmes
Line 75: Line 79:
ouvertures de fichiers  * ouvertures de fichiers
Line 80: Line 84:
== 10.5 Outils de compilation ==  * redirection du résultat (verbeux!) dans un fichier
{{{
    strace -f -F -e trace=open -o fichier.dump la-commande
}}}

RTFM! LocalMan:STRACE/1

== Outils de compilation ==
Line 85: Line 96:
 apt-get  install build-essential  apt-get install build-essential
Line 88: Line 99:
== 10.6 Documentation ==
=== 10.6.1 'man' en français ===
Certaines pages man (manuels) ont été traduites en français et sont disponible dans le paquet manpages-fr .
== Documentation ==
=== 'man' en français ===
Certaines pages man (manuels) ont été traduites en français et sont disponible dans le paquet DebPkg:manpages-fr .

Aide au débuggage

Quelques outils et astuces pour surveiller ce qui se passe dans votre machine en particulier afin d'être en mesure de fournir des informations précises lorsque vous demandez de l'aide sur un forum ou un liste.

Identification du système

 uname  -a

 Linux sphinx 2.4.18 #1 SMP sam sep 21 14:28:23 CEST 2002 i686 unknown

 linux  le noyau
 sphinx         la machine (hostname)
 2.4.18         la version du noyau
 #1 SMP         les options
 sam sep 21 14:28:23 CEST 2002  la date de compilation
 i686   l'architecture
 unknown        le type du processeur

Identification matérielle (PCI)

Les informations de base concernant le matériel identifié sont accessibles par la commande (après installation du paquet DebSearch:pciutils :

 lspci  -v

 sphinx:mariano>lspci   
 00:00.0 Host bridge: Intel Corp. ["440BX"]/ZX - ["82443BX"]/ZX Host  bridge (rev 03)
 00:01.0 PCI bridge: Intel Corp. ["440BX"]/ZX - ["82443BX"]/ZX AGP bridge (rev 03)
 00:07.0 ISA bridge: Intel Corp. ["82371AB"] ["PIIX4"] ISA (rev 02)
 00:07.1 IDE interface: Intel Corp. ["82371AB"] ["PIIX4"] IDE (rev 01)
 00:07.2 USB Controller: Intel Corp. ["82371AB"] ["PIIX4"] USB (rev 01)
 00:07.3 Bridge: Intel Corp. ["82371AB"] ["PIIX4"] ACPI (rev 03)
 00:09.0 Communication controller: Lucent Microelectronics WinModem 56k (rev 01)
 00:0a.0 CardBus bridge: Texas Instruments ["PCI1410"] PC card Cardbus Controller (rev 01)
 00:11.0 Multimedia audio controller: ESS Technology ["ES1969"] Solo-1 Audiodrive (rev 02)
 00:12.0 Ethernet controller: Intel Corp. 82557 [Ethernet Pro 100] (rev 08)
 01:00.0 VGA compatible controller: ATI Technologies Inc Rage Mobility P/M AGP 2x (rev 64)

Processus en cours

se placer dans une console virtuelle (ALT-F2), se connecter root, et lancer l'afficheur de processus (en mode "secure" pour éviter les bourdes)

 top    s

Astuce

Par défaut, l'affiche de top classe les processus par consommation du processeur et totalise la durée d'exécution des processus (colonne TIME). Si votre machine n'est pas en fonctionnement permanent (serveur), il ne devrait pas y avoir de processus ayant une durée de vie longue (grosso-modo TIME supérieur à 1.0, une heure de CPU c'est beaucoup!).

Journal du système

se placer dans une console virtuelle (ALT-F3), se connecter root, et lancer la commande

 tail   -f /var/log/syslog 

Évidemment, adapter cette commande pour un autre fichier de journal particulier (/var/log/...) ou cumuler les surveillances par la variante :

 tail   -f /var/log/fichier1 ... /var/log/fichierN

(FixMe) Comment lancer tout ça automatiquement au démarrage

Appels systèmes

Une commande ne se déroule pas comme prévu (il ne se passe rien, le CPU s'affole, ...)? Voici comment savoir exactement ce qui se passe au niveau des appels systèmes, des ouvertures de fichiers...

  • appels systèmes

    strace      la-commande
  • ouvertures de fichiers

    strace      -f -F -e trace=open la-commande
  • redirection du résultat (verbeux!) dans un fichier

    strace      -f -F -e trace=open -o fichier.dump la-commande

RTFM! LocalMan:STRACE/1

Outils de compilation

En général, le débutant achète une machine récente et se retrouve rapidement à devoir recompiler soit un noyau récent, soit un module pour une carte dernier-cri, soit une application qu'il est le seul à utiliser (humour)...

Sous Debian, les outils nécessaires à ce type de tâches s'installent par :

 apt-get install build-essential

Documentation

'man' en français

Certaines pages man (manuels) ont été traduites en français et sont disponible dans le paquet manpages-fr .