Ich kenne strace und ltrace, aber das sagt mir nur, welche Systemaufrufe bzw. Bibliotheksaufrufe ein Prozess ausführt. Ich möchte genau wissen, welche Anweisungen ein Prozess ausführt. Entweder Montage oder eine Art Mittelweg zwischen C und Montage, wenn dies möglich ist. Angenommen, die Binärdatei wurde nicht mit Debug-Symbolen kompiliert, daher ist es wahrscheinlicher, dass Sie sich der ersten Option zuwenden.
Anwendungsfall: Der Prozess scheint hängen zu bleiben, keine Ausgabe von strace oder ltrace. Bestimmen Sie, ob der Prozess "etwas" tut. Mir ist klar, dass dies schwierig zu bestimmen sein könnte, da ich mir vorstelle, dass dies analog zur Lösung des Halteproblems ist. Es kann jedoch möglich sein, nützliche Daten zu sammeln.
Zweiter Anwendungsfall: Neugier. Es wäre interessant, die gesamte Liste der Montageanweisungen in eine Textliste zu kopieren.
Ich vermute, dass ich dazu gdb verwenden kann, bin mir aber nicht sicher, wie, da es weniger um das Debuggen eines von mir geschriebenen Programms als vielmehr um die Verwendung von gdb geht, um den Zustand eines laufenden Prozesses zu überprüfen.
Betriebssystem ist CentOS 6.
gdb
oder debuggen könnenddd
. Auch in der Montage und ohne Debug-Symbole.