Transféré à :
Appliquer au système Ubuntu.
Lorsqu'il y a une connexion Internet, c'est un grand plaisir d'utiliser LXR (TheLinuxCrossReferencer) pour lire le code source en ligne. Lorsqu'il n'y a pas de réseau, outil de lecture du code du noyau Linuxubuntu Linux, il devient un peu réticent à simplement saisir le code source du noyau via vim et effectuer une recherche. Ensuite, cet article présentera un outil pour localiser rapidement le code source : ctags et cscope. Grâce au didacticiel standard Linux de l'éditeur vim et en utilisant ensemble les deux outils ci-dessus, vous pouvez localiser rapidement le code source que vous souhaitez afficher. Bon, commençons !
1. Téléchargez le dernier package de code source du noyau et décompressez-le dans le répertoire principal
Les étapes suivantes peuvent en fait être effectuées dans le répertoire actuel du code source du noyau du système, mais par souci d'assurance, il est préférable de créer un répertoire spécial pour stocker le code source dans le répertoire personnel. Les répertoires de code source mentionnés ci-dessous font tous référence aux répertoires de code source sous le répertoire personnel.
2.Installer les ctags
Utilisez la commande : sudoapt-getinstallctags
3.Installez cscope
Utilisez la commande : sudoapt-getinstallcscope
4. Dans le fichier de balises
Générez des fichiers de tags via la commande maketags (vous pouvez également utiliser : ctags-R) dans le répertoire du code source
5. Générer un fichier d'index
Exécutez la commande makecscope dans le répertoire source (vous pouvez également utiliser : cscope-indexer-r) pour générer un fichier d'index.
6. Exportez le fichier d'index vers vim
Utilisez la commande pour ouvrir le fichier de configuration vim : sudogedit/etc/vim/vimrc puis ajoutez le code suivant sous le fichier :
iffilereadable("cscope.out")
csaddcscope.out
endif
De cette façon, vous pouvez utiliser cscope directement à chaque fois que vous ouvrez vim.
Après avoir terminé les étapes ci-dessus, vous pouvez localiser rapidement le code source via vim. Les ctags et cscope installés ci-dessus sont tous deux des outils d'indexation de code source, vous pouvez donc installer un seul des trois. Oui, bien que ctags puisse localiser rapidement la balise saisie, cscope est plus flexible dans son utilisation. Il est donc plus pratique d’installer et d’utiliser les deux en même temps. Vous trouverez ci-dessous quelques méthodes d'utilisation simples à titre de référence uniquement.
1. Utilisez les ctags
L'utilisation des ctags est très simple. Tout d'abord, entrez dans le répertoire du code source, ouvrez l'éditeur vim, saisissez : tagtag_name en mode commande et appuyez sur Entrée. Généralement, tag_name peut être un nom de structure, un nom de fonction, un nom de variable macro, etc. Généralement, après avoir entré la commande ci-dessus, comme la balise trouvée n'est pas unique, vous devez utiliser les commandes suivantes ensemble :
tfirst : passez au premier
suivant : passer au suivant
tlast : passer au dernier
2. Utilisez cscope
Bien que ctags soit pratique et rapide à utiliser, il est parfois plus flexible d'utiliser cscopeL'outil de lecture de code du noyau Linux, vous pouvez d'abord consulter le fichier d'aide de cscope :
Citation
commande cscope :
add : Ajouter une nouvelle base de données (utilisation : addfile|dir[pre-path][flags])
find : interroger un modèle (utilisation : findc|d|e|f|g|i|s|tname)
c : Trouvez la fonction qui appelle cette fonction
d : Trouver la fonction appelée par cette fonction
e : Trouvez ce modèle egrep
f : J'ai trouvé ce dossier
g : Retrouvez cette définition
i : Rechercher un fichier #Inclure ce fichier
s : Trouvez ce symbole C
t : Trouver son paramètre formel
help : afficher ces informations (utilisation : help)
kill : mettre fin à une connexion (usage : kill#)
reset : réinitialiser toutes les connexions (utilisation : réinitialiser)
show : connexion d'affichage (utilisation : show)
Grâce au fichier d'aide précédent, vous pouvez constater que si vous souhaitez trouver le code de définition de la fonction request_irq, vous pouvez utiliser cette commande : csfindgrequest_irq pour effectuer une recherche. Dans la plupart des cas, les résultats de la recherche ne sont pas uniques car vous devez continuer à parcourir les fichiers d'en-tête dans plusieurs résultats.
Généralement, le fichier d'en-tête est localisé approximativement via cscope, puis localisé en détail dans le fichier d'en-tête via ctags. Bien que ces deux outils ne se limitent pas à l'utilisation ci-dessus, davantage d'utilisations peuvent être progressivement explorées grâce à une utilisation approfondie, et l'effet sera meilleur lorsqu'il sera combiné avec des expressions régulières.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!