In meiner Anwendung wurden viele Threads erstellt. Einige der Namen der Threads sind in der gdb sichtbar, während ich den Befehl 'info threads' ausführe, andere werden nicht angezeigt. Wie erhält man den gesamten Thread-Namen anstelle des Hexadezimalwerts wie 0xb7fe1424
%Vor% Threads haben standardmäßig keine Namen - der JKMainT
String dort ist der Name der aktuellen Funktion.
Wählen Sie einen der Threads aus und sehen Sie sich den Backtrace an - das könnte Ihnen eine gute Idee geben, welcher Thread es ist. Andernfalls können Sie prctl mit PR_SET_NAME
versuchen, wenn es verfügbar ist.
Wenn Sie auf gdb 7.3 oder höher aktualisieren, zeigt "info thread" Thread-Namen an; zumindest auf nativem (nicht remoten) Linux.
Sie können den Namen des Threads über nicht standardmäßige POSIX-API-Aufrufe festlegen. GDB (und andere Debugger) werden diese Namen anzeigen.
Unter Linux
%Vor%Am Mac
%Vor%