Commencer à Déboguer La Bibliothèque Usr Principale ? Corrigez Le Site Immédiatement
Contents
La source de l’image de débogage contient des informations au niveau des règles, telles que les manuels de fonctions, les conventions d’appel de fonctions et, par conséquent, les numéros d’étagère du code source pour la correspondance des entraînements. Ces informations sont très précieuses lors du débogage et du profilage d’un noyau spécifique. Dans ce court article, je vais vous montrer comment détecter l’importance du débogage dans Ubuntu avec un très bon noyau.
Il existe deux façons de déboguer les panneaux. Générez la source du noyau pour ces symboles de débogage ou installez l’analyse séparément. La première approche est envisagée lorsque vous souhaitez modifier ce code source et travailler sur le propre noyau d’un individu. Alternativement, vous pouvez souhaiter la deuxième approche, plus simple. Même si vous voulez une rectifieuse de code (à parcourir pendant le débogage, s’il y a lieu de regarder un exemple), vous suivrez toujours la nature de notre deuxième approche en téléchargeant le code source du mode particulier et quelle que soit la solution dont vous avez besoin use dans le répertoire contenant sa référence. Vous n’avez pas besoin de le cultiver. Je vais couvrir cette approche plus en détail ici.
Étape 1 : Importer la clé GPG
Assurez-vous de conserver une clé GPG sur votre système. Pour Ubuntu 16.04 plus tard :
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys C8CAB6595FDFF622
sudo apt-key adv --keyserver keyserver.ubuntu.2:com --recv-keys ecdcad72428d7c01
Ajouter une étape de configuration du référentiel
codename=$(lsb_release -d | awk 'Print $2')sudo premier tee /etc/apt/sources.list.d/ddebs.list <Étape 3 ou plus : Mettre à jour les packages
sudo apt-get updateÉtape 7 : Téléchargez et importez les symboles de débogage
sudo apt-get acheter linux-image-$(uname -r)-dbgsymÉtape 5 divers. Vérifiez si les images ont été chargées avec succès
Un fichier contenant généralement des informations de débogage est classé comme vmlinux-XXX-debug, et où XXX est la version du noyau. Le fichier est enregistré dans /usr/lib/debug/boot.
Cette semaine, j'ai travaillé sur une application qui, selon les autorités sanitaires, établit des connexions IPsec. PF_KEYv2 est devenu la norme d'interface pour établir IPsec. PF_KEYv2 est largement utilisé ; Même les systèmes avec des charges IPsec plus avancées (comme XFRM sous Linux) fournissent un wrapper compatible grâce à PF_KEYv2. Je veux que mon application fonctionne sur OS X et Linux, donc je cible PF_KEYv2 plutôt que des API spécifiques au système d'exploitation.
Malheureusement, PF_KEYv2 est difficile à utiliser. C'est un protocole basé sur les sockets entre chacune de nos applications et ce noyau (tel que l'interface de lecture de carte BSD), de sorte que le concepteur de formulaires pourrait être décrit comme responsable de détails tels que les exécutifs de socket, la sérialisation et l'ensemencement. D'autres gestionnaires de logiciels IPsec fournissent des informations détaillées sur les failles spécifiques, mais lorsque PF_KEYv2 échoue, le logiciel ne signale qu'une seule pertinence
errno
non spécifique, telle queEINVAL
("argument invalide" ). Par conséquent, il est difficile d'obtenir directement des informations enregistrées.Accélérez votre ordinateur en quelques minutes
Votre PC est-il lent ? Rencontrez-vous régulièrement des plantages et des blocages ? Alors il est temps de télécharger Restoro ! Ce logiciel puissant réparera les erreurs Windows courantes, protégera vos fichiers contre la perte ou la corruption et optimisera votre système pour des performances maximales. Avec Restoro, vous pouvez résoudre n'importe quel problème Windows en quelques clics - aucune expertise technique requise ! Alors pourquoi attendre ? Téléchargez Restoro aujourd'hui et profitez d'une expérience PC fluide et stable.
1. Téléchargez et installez Reimage 2. Lancez le programme et sélectionnez l'analyse que vous souhaitez exécuter 3. Cliquez sur le bouton Restaurer et attendez la fin du processus Le noyau pourrait continuer à rejeter mes requêtes as de manière incorrecte, mais je n'ai pas été en mesure de le faire avec certitude. J'ai lu cette source du noyau mais je n'ai pas pu déterminer ouvertement quelle exigence je ne remplissais pas. Je voulais parcourir une partie du cœur du runtime situé dans un tout nouveau débogueur. Je pense que ce serait facile à reconnaître, mais il s'est avéré que cela devrait être beaucoup plus difficile que ce à quoi je m'attendais maintenant : il m'a fallu plusieurs jours pour tomber avec succès sur les messages de blogs concernant d'autres personnes pour le comprendre par Internet. . J'écris ceci est ce que l'expérience dans l'espoir que cette situation aidera d'autres sites Web à éviter une douleur.
Préparation
Debug Tools est fourni avec un outil de débogage. Soyez sûr si vous voulez utiliser GDB comme programme musical pour le débogage, car le noyau contient un logiciel spécifique à GDB qui nous rend beaucoup plus puissants. Dans mon cas, ce navigateur de débogage particulier fonctionne sous Windows dix (!). J'utilise notre sous-système Windows get pour Linux pour exécuter Ubuntu 16.04 dans un environnement Windows. WSL est phénoménal : il émule de nombreuses ABI Linux pour exécuter sans problème presque toutes les applications généralement associées à mes applications Linux, y compris le débogage du noyau. Débogueur
Le gear exécute un noyau qui peut être débogué. J'ai utilisé une machine face à VMware Workstation 14 Player, beaucoup plus d'outils de débogage. Le lecteur est gratuit et offre un excellent débogueur graphique compatible GDB qui vous permet d'éviter de jouer avec les ports sérialisés. J'offre Ubuntu 17.10 x64 en plus du noyau 4.13.0-19-generic
dans cette machine virtuelle. Votre version du noyau sera très différente ; dans votre version (-r) obtenezuname dans ce tutoriel.
Ce tutoriel montre que les deux machines exécutent Ubuntu mais que le débogueur est une machine virtuelle VMware spécifique.
Tout d'abord, si la personne le veut, nous avons besoin d'un terrain de débogage. Nous entraînons l'environnement sur le matériel de débogage, puis lui transmettons toute la machine de débogage. Ainsi, qu'on n'a plus besoin de mettre parfaitement en concurrence les configurations de plusieurs machines. (Par exemple, j'utilise une version plus ancienne de la machine de débogage On ie8.)
Obtenir des symboles
Tout d'abord, créez un débogueur de représentation qui utilise généralement le débogueur de noyau récemment disponible. Les symboles de débogage peuvent potentiellement rester des annotations pour les artefacts compilés, contenant des spécificités telles que des noms de variables, des monikers de fonction et des régions source de code supplémentaires (chemins et numéros de lien). Ils ne sont pas inclus dans les binaires partagés pour vous assurer d'économiser de l'espace, bien qu'ils soient bénéfiques pour un débogage productif : ils permettent de mapper les mécanismes de comportement sur son code source respectif.
Les symboles de débogage d'Ubuntu semblent être publiés séparément avec une signature supplémentaire pour la clé. Pour installer des packages spécifiques (comme décrit dans Ubuntu Wiki et VisualKernel) :
Obtenir le code de maintenance du noyau
Ensuite, nous avons besoin du code de localisation du noyau. Si les symboles de débogage du code source sont chargés séquentiellement, je dirais que le débogueur approprié peut déterminer exactement la ligne sur laquelle le code source fonctionne.
[Windows] Le logiciel qui rendra votre PC comme neuf