2017-06-05 3 views
0

Maintenant, je sais que gdb nous permet de basculer entre les threads en cours d'exécution. Mais, pour plus de commodité, j'aimerais savoir s'il est possible d'avoir autant d'émulateurs de terminaux ouverts que des threads dans l'application, et d'avoir une instance gdb dans chacun de ces émulateurs, chacun lié à un émulateur particulier. fil?Est-il possible d'avoir un thread par instance gdb?

Répondre

0

et ont une instance gdb dans chacun de ces émulateurs, chacun lié à un fil particulier

Vous ne pouvez pas joindre plusieurs instances de gdb au même processus. Ceci est une limitation de ptrace syscall utilisé par gdb. De man ptrace:

EPERM The specified process cannot be traced. This could be because 
      the tracer has insufficient privileges (the required 
      capability is CAP_SYS_PTRACE); unprivileged processes cannot 
      trace processes that they cannot send signals to or those 
      running set-user-ID/set-group-ID programs, for obvious 
      reasons. Alternatively, the process may already be being 
      traced, or (on kernels before 2.6.26) be init(1) (PID 1).