Uruchamiając strace na wielowątkowego programu otrzymuję wyniki takie jak ten:Strace wielowątkowy program
[pid 14778] futex(0x7fd8082f266c, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0x7fd8082f2668, {FUTEX_OP_SET, 0, FUTEX_OP_CMP_GT, 1} <unfinished ...>
[pid 14780] <... futex resumed>) = 0
Wskazówka argumenty są w jednej linii z <unfinished...>
a wynik jest na innej linii z <...resumed>
. Brak argumentów skorelowanych z ich wynikami zmniejsza użyteczność strace. Czy jest możliwe, aby strace drukowało wyniki i argumenty w tym samym wierszu podczas śledzenia programu wielowątkowego?
gdybym wyjście do plików przy użyciu -ff -o mogę uzyskać wynik szukam. Jednak wolałbym zapisać dane wyjściowe na mojej konsoli zamiast setki różnych plików. :) – benmmurphy
.. ale jest problem z chronologią: ta konkretna operacja mutex naprawdę zaczyna się w jednym wątku, blokuje ten wątek i powoduje powrót w innym wątku. – pjc50
Nie miałbym nic przeciwko wydrukowaniu: syscall (args) = niedokończone, wznowione: syscall (args) = result. to nie ma problemu chronologicznego i wciąż mogę dopasować argumenty do wyniku. Problem polega na tym, że druga linia, którą drukuje w tej chwili, to syscall (wznowiona) = wynik, który nie jest dla mnie zbyt użyteczny. – benmmurphy