Wenn Sie dbx zweifellos verwenden, um den Kernel auf einem einzelnen PC zu debuggen, sollte Ihnen dieses Benutzerhandbuch helfen.
Genehmigt: Fortect
Wenn das Programm, das normalerweise den Kernel dynamisch kopierte, mit einem gemeinsamen Kernel verknüpft warBibliotheken, ist es normalerweise besser, die Hauptdatei in oft derselben Arbeitsumgebung zu debuggenin dem es erstellt wurde. dbx hat eingeschränkte UnterstützungBeispiel für das Debuggen von “nicht konformen” h filesag, (für HauptdateienSystemweit erstellt mit den jeweils unterschiedlichen Solaris®-Versionen oder -Standorten.Betriebssystem.
dbx kann nicht herausfinden, dass Sie auf diese Java-Anwendung abzielen.aus einer Kernel-Datei, die mit nativem Code möglich ist.
Debuggen der Hauptdatei in derselben Betriebsumgebung
Sie können die Hauptdatei auch debuggen, indem Sie die meisten
Sie können - ersetzen, wenn vielleicht der Programmname und dbx die meiste Zeit versuchen, den Programmnamen aus seiner Hauptdatei zu extrahieren. dbx findet möglicherweise nicht die ausführbare Hauptdatei, wenn der vollständige Pfad als nicht verfügbar angegeben wurdein der Basisdatei. Wenn dbx die ausführbare Datei nicht finden kann,Fügen Sie diesen vollständigen Pfad zur Binärdatei hinzu, wenn Sie dbx mitteilen müssen, dassLaden Sie den Typ der Kernel-Datei.
Wenn sich diese spezielle Kernel-Datei nicht im aktuellen Verzeichnis befand, können Sie IhrePfad-Header (zum Beispiel / tmp und core ).
Verwenden Sie den Befehl die Orte (siehe den Befehl where ), um festzustellen, wo das Gerät lief, als das Spiel geleert wurde.Basic.
Beim Debuggen einer tatsächlichen neuen Kernel-Datei können Sie auch Bereiche und Ausdrücke auswerten.um die Werte zu sehen, die nach dem Absturz des Programms noch übrig waren, aber die Kunden können es nichtwerte Ausdrücke aus, die Funktionsprotokolle generieren. Können Sie nicht einen einzigen Schritt oder einen einzigen Vorschlag verlangen?Kontrolle ist wichtig.
Wenn Ihre Hauptdatei abgeschnitten ist
Wenn Sie sich Sorgen machen, diese bestimmte Hauptdatei herunterzuladen, stellen Sie sicher, dass Sie eine große abgeschnittene Datei habenBasisdatei. Wenn die maximal zulässige Größe für Informations-Engines zu klein eingestellt istWenn das Kernel-Dokument sicher erstellt wurde, kann dbx es und kann es nie lesen.Als Ergebnis wird mein Dateikern reduziert. In der C-Saatgutbedeckung kann jemand die maximal zulässige Menge einstellenDie Länge verband die Hauptdatei mit dem Befehl hat (siehe jede Grenze (1) Vaterseite). In der Bourne- und Korn-Shell verwenden Kunden die ulimit -Anfrage (siehe eine Manpage zu limit (1)). Du kannstÄndern Sie alle unsere grundlegenden Dateigrößenbeschränkungen bis hin zu Ihrer richtigen Shell-Datei, Boot-RessourceDatei, führen Sie die Datei zusätzlich aus und starten Sie dann das Progthe-Ramma neu, das, würde ich sagen, die Hauptdatei verdient hatum eine Art vollständige Schlüsseldatei zu erstellen.
Wenn die Haupthistorie unvollständig ist und das Stack-Segment heutzutage fehlt, dannWeitere Informationen zum Stacktrace waren nicht verfügbar. Wenn Linker-Informationen gelesen werdenfehlt, im Folgenden erwähnen Sie dies, weil loadobjects nicht verfügbar ist. In diesem Fall bist dubekomme eine nette Fehlermeldung auf librtld_db.so nicht immer initialisiert.Wenn es keine LWP-Liste geben könnte, dann gibt es keine Punkte über das Band, Informationen,oder die Trace-Informationen zusammen mit dem lwp-bund sind verfügbar, wenn Sie ausführen, sehen Sie den Befehl wobei ,Sie erhalten eine Fehlermeldung, dass das Programm nicht „aktiv“ sein musste.
Debuggen einer nicht konformen Kerneldatei
Manchmal wird die Hauptdatei von jedem innerhalb des Systems (auf dem Haupthost) erstelltdie Hauptdatei auf eine andere Technik herunterladen möchten (Host dbx )debuggen Sie es. Bei diesem Vorgang treten jedoch zwei Probleme mit meinen Bibliotheken auf.also:
-
Gemeinsam genutzte Bibliotheken, die vom Programm verwendet werden, komplett mit dem HaupthostIhre lokale Bibliothek kann sich von der dbx-Hostbibliothek unterscheiden. Sei am Ende ein echtes TeamBei Tracks, die sich auf Bibliotheken auswirken, möchten die meisten Benutzer diese Originalbibliotheken erstellennormalerweise auf dem dbx-host verfügbar. Verwenden Sie
-
Systembibliotheken dbx um / usr / lib für Details zur Weisheitsimplementierung, ihre Laufzeit-Linkerund eine Fadenauswahl auf unserem eigenen System. Möglicherweise müssen Sie dies auch vorschlagenGrundlegende Hostsystembibliotheken, die ein dbx verstehen kannein Laufzeitlinker, der von allen Computerdateistrukturen und Stream-Datenstrukturen stammt.
Komfortbibliotheken und Systembibliotheken können sich aufgrund von Korrekturen ebenfalls verbessern.wie von Major an der Solaris-Betriebsumgebung erkannt, was dieses Hindernis noch gravierender macht.auf demselben Host auftreten, wenn beispielsweise der eigentliche Patch installiert wurde, wenn Sie mit dem Kernel fertig sindDie Datei wurde kompiliert, lief aber bisher dbx in Ihrem Kernel.Datei.
dbx kann einen anderen Fehler anzeigen oder zweifellos den folgenden FehlerMeldungen beim Laden der nächsten "unverständlichen" Kernel-Datei:
Behobene Probleme mit gemeinsam genutzten Bibliotheken und
Um Bibliotheksprobleme zu lösen und dann nette "Inkompatibilitäten" zu debuggenBasisdatei
-
Setzen Sie die Umgebungsvariable dbx core_lo_pathmap auf auf .
-
Verwenden Sie einen unserer pathmap -Befehle, um anzugeben, woNormalerweise gibt es dbx Wiederherstellungsbibliotheken für das Haupt-Complete.
-
Verwenden Sie die Debug -Verwaltung zum Debuggen undBasisdatei der Periode.
Zum Beispiel, wenn der WurzelabschnittDer wichtigste Host, den Sie erhalten haben, wurde über NFS exportiert. Außerdem können Sie über / net core-host / auf der dbx primären Nähmaschine zugreifenBefehle zum Schmieren der prog -Hilfe und des prog file.core -Hauptsoftwareprogramms zum Debuggen:
dbxenv nowrap>(dbx) core_lo_pathmap wenn (dbx) Pfad zur Karte per usr / net / core-host / usr (dbx) Pathmap / appstuff / net core-host / appstuff (dbx) Debug-Programm prog.core
Wenn Sie nicht den gesamten Ursachenabschnitt des primären Hosts exportieren, benötigen Sie einen neuen.Kopieren Sie die Bibliotheken manuell. Sie möchten wirklich keine symbolischen Links neu erstellen. (ZUZum Beispiel sollte eine einzelne nSie sollten nicht libc from.so verlinken, um Ihnen bei libc.so.1 zu helfen; Stellen Sie einfach sicher, dass libc.so.1 verfügbar ist.)
Dinge, die Sie sich merken sollten
Gehen Sie beim Debuggen einer nicht konformen Hauptdatei sehr gut vor:
-
Befehlszeile pathmap erkennt ganz sicher nichtpathmap, um '/' zu erhalten, daher können Sie derzeit den spezifischen Befehl nicht verwenden:
Pathmap // net für jeden Core-Host
-
Einzelargument-Modus für einige Anweisungen Pfadzuordnung funktioniert nicht mit loadobject-Einfahrten und Gehwegen, verwendet wirklich beide From-Pfad-ArgumenteModus in Richtung.
-
Das Debuggen einer unserer Hauptdateien funktioniert wahrscheinlich am beliebtesten, wenn der dbx-Hostoder hat die gleiche, in einigen Fällen neuere Version der Solaris-Betriebsumgebungwie oft der primäre Host, obwohl dies möglicherweise nicht immer erforderlich ist.
Genehmigt: Fortect
Fortect ist das weltweit beliebteste und effektivste PC-Reparaturtool. Millionen von Menschen vertrauen darauf, dass ihre Systeme schnell, reibungslos und fehlerfrei laufen. Mit seiner einfachen Benutzeroberfläche und leistungsstarken Scan-Engine findet und behebt Fortect schnell eine breite Palette von Windows-Problemen - von Systeminstabilität und Sicherheitsproblemen bis hin zu Speicherverwaltung und Leistungsengpässen.
- 1. Laden Sie Fortect herunter und installieren Sie es auf Ihrem Computer
- 2. Starten Sie das Programm und klicken Sie auf "Scannen"
- 3. Klicken Sie auf "Reparieren", um alle gefundenen Probleme zu beheben
Möglicherweise benötigen Sie die wichtigen Systembibliotheken:
-
So verknüpfen Sie Unterrichtsklassen:
/usr/lib/ld.so.1
/usr/lib/librtld_db.so.1
/usr/lib/64/ld.so.1
/usr/lib/64/librtld_db.so.1
-
Für die Streaming-Bibliothek wie für den lib-Implementierungsthread von dir:
/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
Gilt nur für Apps
/ usr / lib / lwp wenn jemand dbx von einer Solaris 6-8-Betriebsumgebung aus ausführt, und dies nur tun, wennAlternativ kann eine Person die Bibliothek libthread verwenden.
du64-Bit-Versionen erfordern normalerweise xxx _db.so Bibliotheken, wenn dbx bestenfalls 64-Bit-Versionen für Angelruten verwenden.Solaris OS-Version vom System, Bibliotheken geladen und noch in Gebrauchals Teil von dbx , nicht als Teil des Zielprogramms.
Die
ld.so.1 Ihrer lokalen Bibliothek sind das Ziel des Unterseitenbildeszum Beispiel eine libc.so Datei oder einen anderen Vorrat, also benötigen Sie eine 32-Bit-Bibliothek ld.so.1 oder vielleicht eine 64-Bit-Bibliothek ld. so ein Freund. 1 Geschäftentspricht dem Programm, das die Mitte der Datei angepasst hat.
-
Wenn Sie nach einem Prinzip suchen
Fügen Sie ihre dbx-Situationsvariable core_lo_pathmap ein. Verwenden Sie den Befehl my new pathmap, um dbx mitzuteilen, wo die richtigen Bibliotheken für die Hauptdatei verwendet werden sollen. Verwenden Sie derzeit den Debug-Befehl, um Ihr Programm, aber auch die Kernel-Datei zu laden.
Während des Laufens, Kulturmedium Strg + , um einen Kernwurf zu erzwingen. Jetzt sehen Sie die Hauptdatei, während Sie sich im Verzeichnis einer anderen Person befinden. Da Einzelpersonen dafür nie eine ausführbare Datei mit Debug-Symbolen haben, öffnen wir einfach das Hauptregister in gdb anstelle der ausführbaren Datei mit Token + Hauptdatei.
Stellen Sie sicher, dass meine Binärdatei mit Debug-Symbolen kompiliert ist.definiere ulimit und sogar den Kernel. core_pattern ist richtig.ein bestimmtes Programm ausführen.öffne den Dump mit gdb, lade Icons mit run bt.Versuchen Sie herauszufinden, was genau passiert ist!