Die Kombination ARM6/FreeBSD wird nicht unterstützt.
Das Valgrind-Team doesn't support FreeBSD at all und die Leute, die die FreeBSD port pflegen, haben es auf i386 und AMD64 beschränkt, weil dies die aktuellen Tier 1-Architekturen sind.
Bei einer Schätzung wird die Valgrind-Unterstützung für ARM erst implementiert, wenn ARM eine Tier 1-Plattform wird oder bis jemand die Portierung vornimmt.
Siehe auch die Erklärung der Valgrind Team an der Portierung:
Maintaining each port takes a lot of effort, more so than for most other programs. Valgrind is fragile due to the low-level nature of what it does. Also, each platform port has CPU-specific code, OS-specific code and platform-specific code, and testing all the combinations is difficult.
Update:
Auf FreeBSD Sie das sehr leistungsstarke dtrace
Werkzeug für die Leistungsüberwachung und Fehlersuche verwenden können. Es hat jedoch eine steile Lernkurve.
Mein bevorzugtes Debugging-Tool platziert immer noch printf()
in strategischen Standorten. Angenommen, Sie vermuten, dass Ihr Programm in einem großen Codeblock abstürzt. Setzen Sie eine printf
in der Mitte, neu kompilieren und erneut ausführen. Wenn Sie die Ausgabe sehen, kam der Fehler nach printf
. Wenn Sie es nicht tun, war es vor der printf
. Sie haben nun die Größe des Blocks, der den Fehler enthält, halbiert. Fügen Sie nun einen weiteren printf
in der Mitte des verbleibenden verdächtigen Codes hinzu und wiederholen Sie den Vorgang. Diese Technik wird Bisektion genannt. Sie können es auch verwenden, um den Wert einer Variablen zu überwachen.
Ich würde vorschlagen, das Debugging printf
in einem Makro ([1], [2]) zu wickeln, so können Sie sie im Code lassen, aber Sie können sie für einen Release-Build deaktivieren.
Vielen Dank für Ihre Antwort. Welche Möglichkeiten gibt es also, Programme in C-Sprache (außer 'gdb') auf FreeBSD/ARM zu debuggen? –
@ GeorgeGaál Siehe aktualisierte Antwort. –