2016-06-22 23 views
3

Ist es möglich, gdb Breakpoints pro Thread zu deaktivieren?gdb disable Breakpoint in bestimmten Thread

Ich habe einen Haltepunkt, der alle 100 Millisekunden im Hintergrund Worker-Thread ausgelöst wird. Aber ich muss den gleichen Ort in anderen Threads debuggen. Es wäre also cool, Breakpoint nur im Hintergrund-Worker-Thread zu deaktivieren. Ist es möglich?

Vielleicht kann ich Thread deaktivieren, indem ich eine speziell gestaltete Bedingung zu diesem Haltepunkt hinzufügen, wenn ich die Nummer des Threads weiß?

Antwort

3

Gdb bietet zwei Convenience-Variablen $_thread und $_gthread (letzteres ist ziemlich neu), die in Bedingungen verwendet werden können, um auf den aktuellen Thread verweisen. Nachdem der Worker-Thread gestartet wurde, können Sie info thread verwenden, um die Nummer zu finden. Dann können Sie Ihren Breakpoint ändern (angenommen für dieses Beispiel, dass es Breakpoint 2 ist):

+0

Vielen Dank. Das ist, was ich gesucht habe. –