gdb, wie der Thread-Name angezeigt wird

8

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%     
Whoami 20.01.2012, 16:01
quelle

3 Antworten

8

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.

    
James McLaughlin 20.01.2012, 16:37
quelle
4

Wenn Sie auf gdb 7.3 oder höher aktualisieren, zeigt "info thread" Thread-Namen an; zumindest auf nativem (nicht remoten) Linux.

    
Tom Tromey 01.07.2014 16:11
quelle
4

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%     
manylegged 29.12.2014 02:29
quelle

Tags und Links