So che la risposta a questo, sto mettendo su qui per gli altri a vederloEclipse CDT debug multithread non ottimale - come si esegue una discussione esclusivamente?
Se si utilizza Eclipse CDT, probabilmente capire che Eclipse non è un debugger, è solo un front applicazione fine, in particolare a GDB. Pertanto, quando esegui il debug di programmi C++, utilizzi semplicemente GDB in modo più comodo. Se dovessi eseguire il debug di un programma con multithreading in eclisse CDT, ti renderai conto che le cose diventano rapidamente frenetiche perché quando colpisci un breakpoint, tutti i thread si fermano e quando si tenta di eseguire una singola riga in un thread specifico, viene eseguito anche gli altri thread. Affinché funzioni correttamente, i thread devono essere eseguiti in modo arbitrario ed esclusivo, in modo che quando il programmatore esegue una singola riga, esegue solo il thread specifico.
Quindi, per impostazione predefinita, le impostazioni di gdb per impostazione predefinita disattivano il "blocco dello scheduler". Se esegui il debug delle applicazioni multithreading, capirai che questo deve essere attivo in GDB in modo da ottenere il comportamento desiderato. Come si esegue questo comando:
set scheduler-locking on
in GDB all'interno di eclissi CDT?
Come si esegue esattamente lo script GDB da Eclipse? – rbaleksandar