Als u dbx genereert om de kernel op uw pc te debuggen, zou deze gebruikershandleiding u moeten helpen.
Goedgekeurd: Fortect
Als het programma dat de kernel dynamisch kopieerde waarschijnlijk was gekoppeld aan een gemeenschappelijke kernelBibliotheken, het is aantrekkelijker om het hoofdbestand te debuggen in de equivalente werkomgevingwaarin het is gemaakt. dbx heeft beperkte ondersteuningVoorbeeld voor het debuggen van “niet-conforme” n filesag, (voor hoofdbestandenSysteembreed gemaakt met een onderscheidende Solaris®-versie of locatie.Besturingssysteem.
dbx mag er niet achter komen dat u naar deze Java-toepassing verwijst.van een kernelbestand zo eenvoudig met native code.
Foutopsporing in het hoofdbestand in dezelfde besturingsomgeving
U kunt ook het hoofdbestand debuggen door de meeste debug
U kunt - vervangen als mijn programmanaam en dbx vaak proberen de programmanaam uit het overheersende bestand te extraheren. dbx kan het specifieke hoofdprogramma mogelijk niet vinden als het volledige pad als niet beschikbaar wordt vermeldin het basisbestand. Als dbx het uitvoerbare bestand niet kan vinden,Voeg indien nodig het volledige pad naar het binaire bestand toe - vertel dbx datLaad de kernelmap.
Als dit specifieke kernelbestand zich verre van in de huidige directory bevindt, kunt u uwPadkoptekst (bijvoorbeeld / tmp / abs ).
Gebruik de where richting (zie de where commando) om te kiezen waar het apparaat draaide toen het werd beschouwd als was geleegd.Basis.
Wanneer u een geavanceerd kernelbestand debugt, kunt u ook bereiken en ook expressies evalueren.om de waarden te zien waaruit ze waren overgebleven nadat het programma was gecrasht, maar dat kan nietwoorden en woordgroepen evalueren die functielogboeken genereren. Kun je niet nog een enkele stap of een enkele suggestie doen?Controle punten.
Als uw hoofdbestand is afgekapt
Als je je zorgen maakt over het downloaden van het enige bestand, zorg dan dat je een ingekorteBasis verklaring. Wanneer de maximaal toegestane grootte voor magnetische rapportmotoren te klein is ingesteldAls het kernelbestand veilig kan worden aangemaakt, zal dbx het niet echt kunnen lezen.als resultaat wordt de databasekern verminderd. In de C-shell kan nog één het maximaal toegestane instellenDe lengte van deze hoofdbestanden met behulp van de limiet hebben (zie elke limiet (1) partner pagina). In de Bourne en korn shell help je het ulimit verzoek (zie vaak de limit (1) man pagina). Jij kanWijzig elk van onze limieten voor de basisbestandsgrootte in het rechter shell-bestand, opstartbronbestand, voer het uit in begeleidend bestand en herstart dan de progthe ramma die genereerde, zou ik zeggen, het hoofdbestandom een eindsleutelbestand te maken.
Als het hoofdbestand onvolledig is en het stapelsegment momenteel is verwijderd, danMeer informatie over de stacktracering is eigenlijk niet beschikbaar. Wanneer linker informatie lezenontbreekt, dring er dan op aan omdat loadobjects niet beschikbaar zijn. In dit geval, jijkrijg een mooie foutmelding met betrekking tot librtld_db.so die niet altijd initialiseert.Als er geen LWP-lijst is, is er geen informatie op de band, informatie,of de traceerinformatie van alle lwp-bund is beschikbaar, wanneer je het uitvoert, zul je zeker het commando zien waar ,U krijgt een handige foutmelding die aangeeft dat het programma niet te "actief" was.
Foutopsporing in een niet-compatibel kernelbestand
Soms wordt het eigenlijke hoofdbestand gemaakt door iedereen op mijn systeem (op de hoofdhost), en jijwil het hoofdbestand downloaden naar een andere kabelbox (host dbx )debug het. Tijdens deze chirurgische ingreep zijn er echter twee problemen met de bibliotheken.dus:
-
Gedeelde bibliotheken die door het programma worden gebruikt met over het algemeen hoofdhostuw lokale bibliotheek kan anders zijn dan de belangrijkste dbx-hostbibliotheek. Wees pas op het einde een echte groepVoor tracks die van invloed zijn op bibliotheken, bent u van plan om die originele bibliotheken te makenmeestal beschikbaar via dbx-host. Gebruik
-
Systeembibliotheken dbx terug in / usr / lib voor het begrijpen van installatiedetails, hun runtime-linkersen een threadbibliotheek over ons eigen systeem. Je moet er misschien ook voor zorgen dat je dit voorsteltBasis bibliotheken van het hostsysteem zodat de meerderheid van dbx het kan begrijpeneen runtime-linker van werkstationbestandsstructuren en streamgegevensstructuren.
Gemaksbibliotheken en systeembibliotheken kunnen ook veranderen in de vorm van een resultaat van reparaties.zoals grote updates voor de Solaris Operating Environment, waardoor dit probleem in wezen ernstiger wordt.optreden op dezelfde host als, bijvoorbeeld, de daadwerkelijke patch is geïnstalleerd na uw kernelHet bestand is gecompileerd, maar had eerder haast met dbx in je kernel.Bestand.
dbx kan een andere fout of de volgende fout weergevenBerichten bij het laden van het volgende "onbegrijpelijke" kernelrapport:
Problemen opgelost met gedeelde bibliotheken en
Om bibliotheekproblemen op te lossen en geweldige "incompatibiliteiten" te debuggenBasisbestand
-
Stel de dbx core_lo_pathmap natuurlijke wereldvariabele in op op .
-
Gebruik een van onze pathmap orders om aan te geven waarGewoonlijk zijn er dbx herstelbibliotheken voor het hoofdbestand.
-
Gebruik de debug voor het debuggen enbasisbestand van het programma.
Bijvoorbeeld, als de hoofdsectiede hoofdwinkel die je hebt ontvangen is geëxporteerd via NFS en zal zeker toegankelijk zijn via / net per core-host / op de dbx naaimachine begrijpen, je moet al het volgende doenCommando's om het prog programma te smeren en ook het hoofdprogramma prog file.core bedoeld voor debuggen:
dbxenv nowrap>(dbx) core_lo_pathmap voor (dbx) Pad naar de kaart - usr / net / core-host / usr (dbx) Pathmap / appstuff / net / core-host voor elke appstuff (dbx) debug programma prog.core
Als je niet het volledige rootdetail van de primaire host exporteert, heb je een nieuwe nodig.Kopieer de bibliotheken handmatig. Je hebt niet de behoefte om symbolische links opnieuw te creëren. (TOTKlanten nU mag bijvoorbeeld libc from.so niet linken om u te helpen met libc.so.1 ; Zorg ervoor dat libc.so.1 beschikbaar is.)
Dingen om te onthouden
Kies een slimme oplossing bij het debuggen van een niet-compatibel hoofdbestand:
-
Opdrachtregel pathmap herkent nietpathmap om '/' te krijgen, dus je kunt het juiste commando niet gebruiken:
Pathmap / / net en core-host
-
Enkele argumentmodus voor sommige orders padkaart werkt niet met loadobject-paden, gebruikt in feite beide van-path-argumentenmodus naar.
-
Debuggen van 1 van onze hoofdbestanden werkt waarschijnlijk het beste als en wanneer de dbx hostof heeft dezelfde, mogelijk nieuwere versie van de Solaris Operating Environmentals de beste gastheer, hoewel dit niet altijd voordelig is.
Goedgekeurd: Fortect
Fortect is 's werelds meest populaire en effectieve pc-reparatietool. Miljoenen mensen vertrouwen erop dat hun systemen snel, soepel en foutloos blijven werken. Met zijn eenvoudige gebruikersinterface en krachtige scanengine kan Fortect snel een breed scala aan Windows-problemen vinden en oplossen - van systeeminstabiliteit en beveiligingsproblemen tot geheugenbeheer en prestatieproblemen.
- 1. Download Fortect en installeer het op uw computer
- 2. Start het programma en klik op "Scannen"
- 3. Klik op "Repareren" om gevonden problemen op te lossen
Mogelijk hebt u de volgende bibliotheken nodig:
-
Lessen koppelen:
/usr/lib/ld.so.1
/usr/lib/librtld_db.so.1
/usr/lib/64/ld.so.1
/usr/lib/64/librtld_db.so.1
-
Voor streaming-bibliotheek volgens lib-implementatiethread van jullie:
/usr/lib/libthread_db.so.1
/usr/lib/64/libthread_db.so.1
/usr/lib/lwp/libthread_db.so.1
/usr/lib/lwp/64/libthread_db.so.1
Geldt alleen voor software
of usr / lib / lwp als uw bedrijf dbx draait vanuit een Solaris 8-besturingssysteem, en doe dit alleen als:Als alternatief heeft u de mogelijkheid om de libthread bibliotheek te gebruiken.
jij64-bits kopieën vereisen gewoonlijk xxx _db.so bibliotheken als dbx op zijn best hetzelfde zijn als 64-bits versies.Solaris OS-versie van deze procedure, bibliotheken geladen en nog steeds in gebruikals onderdeel van dbx , niet als onderdeel van het belangrijkste doelprogramma.
De
ld.so.1 uw lokale bibliotheek zijn het doelwit van de basisafbeeldingvoor omstandigheden in punt libc.so bestand of andere bibliotheek, dan heb je 32-bit bibliotheek ld.so.1 , 64-bit bibliotheek ld nodig. zo'n persoon. een bepaalde persoon winkelkomt overeen met het programma dat het exacte midden van het bestand heeft gemaakt.
-
Als u op zoek bent naar dat principe
Neem het grootste deel van de dbx-situatievariabele core_lo_pathmap op. Gebruik de my pathmap-aankoop om dbx te vertellen waar de uitstekende bibliotheken voor het hoofdbestand moeten worden gebruikt. Gebruik een bepaald debug-commando om uw programma en kernelbestand te laden.
Druk tijdens het hardlopen op Ctrl + om een kerndump te forceren. Nu zul je het hoofdbestand zien in de directory van iemand anders waarin je je bevindt. Omdat we onthouden dat we geen uitvoerbaar bestand met debug-symbolen hebben om dit aan te bieden, openen we gewoon het hoofdbestand in gdb in plaats van het uitvoerbare bestand met afbeeldingen + hoofdbestand.
Make destined my binary is gecompileerd met debug-symbolen.definieer ulimit en dan zelfs kernel. core_pattern is correct.voer het specifieke programma uit.open de dump met gdb, laad pictogrammen en bediende bt.Probeer erachter te komen wat er precies is gebeurd!