Jede Datenbank ist lediglich so gut wie die Daten die in ihr enthalten sind. Generell diktiert gesunder Menschenverstand (die Existenz eines solchen vorausgesetzt) die Informationen die am hilfreichsten wären um ein Problem in der Software aufzuspüren und zu beheben.
Ein Grundprinzip für die Berichterstattung eines Programmfehlers lautet: Erläutere alle Fakten. Wenn Sie nicht sicher sind ob eine bestimmte Tatsache erwähnt werden soll oder nicht, erwähnen Sie sie!Dies gilt für alle Problem Report Systeme, sowohl bezüglich Computer Software, Kriminalberichten oder Motorrad Reparaturen. In Bezug auf Software ist dies sogar noch wichtiger, da scheinbar unbedeutende Kleinigkeiten oft große Unterschiede machen können (z. B. die Umbenennung einer Variablen, ein fehlendes Semikolon usw.).
Nun gab es also eine kernel panic, Ihr Bildschirm (oder Log) ist voller Hexadezimal-Zahlen und Ihr System brach zusammen. Es ist wichtig, dieses Problem zu melden, da ein echtes Betriebssystem niemals zusammenbrechen sollte, es sei denn die Computer Hardware hat eine Fehlfunktion (ein BS kann leider nicht viel tun, um Hardware Fehler zu korrigieren). Daher bleiben lediglich Programmfehler in dem Betriebssystem-Kern (dem Kernel) übrig, und dies sind die Fehler die wir verfolgen und beheben müssen um NetBSD noch stabiler und robuster als es bereits ist, zu machen.
Das Problem dabei jedoch ist, daß der Stapelspeicherauszug (stack dump) den der Kernel ausdruckt ganz spezifisch für Ihr System ist und die Nummern wieder zurück in Referenzen der Symbol-Tabelle umgewandelt werden müssen, um es jemandem, der nicht den Kernel Ihres Systems nutzt, zu ermöglichen, einen genauen Eindruck zu bekommen, wo das System abbrach.
Am Allerwenigsten sollten Sie die "PC" Nummern notieren und sie in symbolische Referenzen umwandeln - dies ist der Program Counter des Computers, welcher anzeigt, welchen Code er gerade ausführte. Sollte es Ihnen möglich sein, so wäre es ideal, wenn Sie den gesamten Auszug kopieren und in den Problem Report einfügen könnten.
Wenn der Kernel nun also etwas wie folgt ausdruckt (normalerweise viele ähnliche Zeilen):
pc = 0xf80ff430 args = (0x0, 0x41001fe5, 0xf8139c00, 0xf8123d20, 0xf8101e38, 0xf8143800, 0xf8123c68) fp = 0xf8123c68
Die PC-Nummer ist spezifisch für Ihren Kernel und es ist unwahrscheinlich, daß er mit dem eines anderen Kernels gleich ist. Daher muss er in eine symbolische Referenz umgewandelt werden. Um den Hexadezimalwert des PC in eine symbolische Referenz umzuwandeln, sollten Sie gdb(1) wie folgt verwenden:
gdb -k /netbsd x 0xf80ff430 0xf80ff430 <cpu_reboot+196>: 0x40000093
Den "<cpureboot+196>" Teil von gdb(1) ist genau der Teil, denn die Leute, die an Ihrem Problem Report arbeiten werden. benötigen. Bitte notieren Sie diesen Teil (idealerweise zusammen mit dem Rest der "args" Zeile) in Ihrem Problem Report.
Problem Report #3765 ist ein gutes Beispiel eines ausführlichen PR einer kernel panic.
Home Page |