Op Dit Moment Beginnen Met Debuggen Van De Usr-bibliotheek? Repareer Het Onmiddellijk
Contents
De aankoop van het debug-symbool bevat informatie op regelniveau, zoals functionaliteitshandleidingen, conventies voor het aanroepen van functies en schapnummers van sitecodes voor het zoeksysteem voor instructieovereenkomsten. Deze informatie is erg handig bij het debuggen en profileren van de kernel. In dit korte artikel laat ik uw bedrijf zien hoe u foutopsporingssymbolen kunt detecteren in Ubuntu met een goede kernel.
Er kunnen heel goed twee manieren zijn om symbolen te debuggen. Bouw de kernelbron voor de volledige debugsymbolen, of installeer de views professioneel. De eerste benadering wordt gebruikt in het geval dat u uw providercode wilt wijzigen en aan uw privé-kernel wilt werken. Als alternatief kunt u de tweede, eenvoudigere benadering van een persoon kiezen. Zelfs als shoppers een codegenerator willen (om door te stappen tijdens het debuggen, als u naar een voorbeeld bladert), kunt u toch de aard van de laatste benadering volgen door de formuliercode van de modus en welke oplossing u ook gebruikt, te downloaden in de map die de bron bevat. U hoeft deze situatie niet op te bouwen. Ik zal deze aanpak hier in veel meer detail bespreken.
Stap 1: importeer de GPG-sleutel
Zorg ervoor dat je een functionele GPG-sleutel op je systeem hebt. Voor Ubuntu 16.04 later:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys C8CAB6595FDFF622
sudo apt-key adv --keyserver keyserver.ubuntu.2:com --recv-keys ecdcad72428d7c01
Repositoryconfiguratie toevoegen
codename=$(lsb_release -d | awk 'Print $2')sudo eerste tee /etc/apt/sources.list.d/ddebs.list <Stap 3: pakketten bijwerken
sudo apt-get updateStap 4: Download en importeer de foutopsporingssymbolen
sudo apt-get koop linux-image-$(uname -r)-dbgsymStap 5. Controleer of de afbeeldingen met succes zijn geladen
Een bestand dat gewoonlijk debug-knowhow bevat, wordt geclassificeerd als vmlinux-XXX-debug, waarbij XXX de kernelversie is. Het gegevensbestand wordt opgeslagen in /usr/lib/debug/boot.
Deze week heb ik gewerkt aan een applicatie die volgens experts IPsec-verbindingen tot stand brengt. PF_KEYv2 heeft de interfacestandaard veranderd voor het configureren van IPsec. PF_KEYv2 wordt veel gebruikt; Zelfs communities met meer geavanceerde IPsec-loten (zoals XFRM op Linux) bieden de juiste wrapper die compatibel is met PF_KEYv2. Ik wil dat mijn applicatie goede resultaten geeft op OS X en Linux, dat ik me richt op PF_KEYv2 in plaats van OS-specifieke API's.
Helaas is PF_KEYv2 moeilijk te helpen. Het is een socket-gebaseerd protocol tussen zowat al onze applicaties en de kernel (zoals de BSD-richtingzoekende interface), dus de vormontwerper is erg belangrijk voor details zoals socketbeheer, serialisatie, seeding. Andere IPsec-slot-handlers bieden gedetailleerde informatie over de complicaties, maar wanneer PF_KEYv2 faalt, informeert het ons slechts één niet-specifieke
errno
-waarde, zoalsEINVAL
("ongeldig argument" ). Daarom is het moeilijk om direct gedetailleerde media te krijgen.Versnel uw computer in enkele minuten
Is uw pc traag? Ervaar je regelmatig crashes en bevriezingen? Dan is het tijd om Restoro te downloaden! Deze krachtige software repareert veelvoorkomende Windows-fouten, beschermt uw bestanden tegen verlies of corruptie en optimaliseert uw systeem voor maximale prestaties. Met Restoro kunt u elk Windows-probleem met slechts een paar klikken oplossen - geen technische expertise vereist! Dus waarom wachten? Download Restoro vandaag nog en geniet van een soepele, stabiele pc-ervaring.
1. Download en installeer Reimage 2. Start het programma en selecteer de scan die u wilt uitvoeren 3. Klik op de knop Herstellen en wacht tot het proces is voltooid De kernel blijft mijn eigen verzoeken onjuist weigeren, maar ik ben er nog niet in geslaagd om het zeker te weten. Ik heb een bepaalde kernelbron gelezen, maar kon er niet achter komen en aan die vereiste voldeed ik niet. Ik wilde gewoon helemaal over de maagkant van de runtime gaan in een bepaalde gloednieuwe debugger. Ik dacht dat het programma gemakkelijk te begrijpen zou zijn, hoewel het drastisch moeilijker bleek te zijn dan ik had verwacht: het concept kostte me enkele dagen om te haperen bij de berichten inblogs van sommige mensen om het op internet te begrijpen. Ik schrijf dit uiteindelijk in de hoop dat het andere websites heel goed kan helpen deze methodepijn te voorkomen.
Voorbereiding
Debug Tools bevat de specifieke debug-tool. Zorg ervoor dat u GDB gebruikt als een muzikaal hulpmiddel dat nodig is voor het debuggen, omdat de kernel GDB-specifieke software bevat die ons ultrakrachtiger maakt. In mijn geval draait de debugger-telefoon op Windows tien (!). Ik gebruik ons eigen Windows-subsysteem voor Linux om Ubuntu 16.04 in een Windows-omgeving uit te voeren. WSL wordt fenomenaal: het emuleert veel Linux ABI's om bijna al mijn eigen Linux-applicaties zonder problemen uit te voeren, met name kernel debugging. Debugger
De machine kan een kernel draaien die kan worden gedebugd. Ik gebruikte een machine met VMware Workstation 14 Player, veel meer debug-tools. De speler is gratis en biedt daarom een geweldige GDB-compatibele cp-debugger waarmee je gehannes met geserialiseerde poorten kunt vermijden. Ik gebruik Ubuntu 17.10 x64 naast de 4.13.0-19-generic
-kernel in deze VM. Je kernelversie zal anders zijn; verwijder tijdens uw versie (-r)uname tijdens deze tutorial.
Deze tutorial laat zien dat op elke machine Ubuntu draait en dat de debugger meestal een specifieke VMware-machine is.
Allereerst, als je het goed zou vinden, hebben we een debugging-omgeving nodig. We trainen de omgeving op meestal de foutopsporingshardware en geven vervolgens uw foutopsporingsmachine eraan door. Zo hebben we geen langere behoefte om de volledige configuraties van verschillende machines perfect op elkaar af te stemmen. (Voor een casestudy gebruik ik een oudere versie van de On ie8-foutopsporingsmachine.)
Symbolen ophalen
Maak eerst een symbool-debugger die normaal gesproken de huidige kernel-debugger gebruikt. Debug-symbolen kunnen mogelijk meer annotaties zijn voor gecompileerde artefacten, met informatie als namen van variabelen, functienamen en bovendien aanvullende codebronlocaties (paden en dus linknummers). Ze worden meestal niet meer opgenomen in gedeelde binaire bestanden om ruimte op te ruimen, hoewel ze cruciaal zijn met betrekking tot productieve foutopsporing: ze zorgen ervoor dat gedragselementen kunnen worden toegewezen aan hun adequate broncode.
Ubuntu-foutopsporingssymbolen worden afzonderlijk geleverd met het ontvangen van een andere bank dan de sleutel. Om nauwkeurige pakketten te installeren (zoals beschreven in Ubuntu Wiki en VisualKernel):
Kennelonderhoudscode ophalen
Vervolgens hebben we de couponcode van de kernelbroncode nodig. Als de broncode en bovendien debug-symbolen sequentieel worden geladen, kan de passende debugger precies bepalen in welk bereik de broncode werkt.
[Windows] De software die ervoor zorgt dat uw pc weer als nieuw werkt