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...

    strace      la-commande

    strace      -f -F -e trace=open la-commande

    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 .