Как я могу отследить ошибки strace -c?

0

Как отслеживать ошибки в списке, который генерируется командой strace -c, и некоторые могут помочь мне, чтобы я мог их исправить. журналы:

% time     seconds  usecs/call     calls    errors syscall
------ ----------- ----------- --------- --------- ----------------
 30.95    0.000173           6        30           mmap
 26.83    0.000150           7        23        12 open
 12.70    0.000071           4        20           mprotect
  8.05    0.000045           5         9           read
  6.98    0.000039           3        13           close
  6.98    0.000039           3        12           fstat
  3.04    0.000017           3         6         3 stat
  1.43    0.000008           8         1         1 access
  1.43    0.000008           8         1           execve
  0.89    0.000005           2         3           brk
  0.72    0.000004           4         1           arch_prctl
  0.00    0.000000           0         1           write
  0.00    0.000000           0         1           lstat
  0.00    0.000000           0         2           munmap
  0.00    0.000000           0         2           rt_sigaction
  0.00    0.000000           0         1           rt_sigprocmask
  0.00    0.000000           0         2           ioctl
  0.00    0.000000           0         1           getrlimit
  0.00    0.000000           0         2           statfs
  0.00    0.000000           0         1           set_tid_address
  0.00    0.000000           0         1           set_robust_list
------ ----------- ----------- --------- --------- ----------------
100.00    0.000559                   133        16 total
  • 1
    У вас есть ошибки с open, stat и access, верно? Так что запустите strace с вашей программой снова, но получите полную информацию. Вместо strace -c используйте strace -v . Найдите ошибки и посмотрите, какие файлы их вызывают. Опять же, запустите свою прогу так: strace -v -o calls.txt -e open,stat,access your-prog
  • 0
    Сводка вывода довольно ясна по системным вызовам, которые терпят неудачу. Например, open () / stat / access предполагает, что какой-то поток, который выполняет операцию с открытием файла, определением его размера et.al и изменением его доступа, получает много ошибок. Вы можете выделить поток, связанный с обработкой файлов, а затем выполнить связку для этого потока!
Показать ещё 1 комментарий
Теги:
valgrind
strace

1 ответ

2
Лучший ответ

У вас есть ошибки с open, stat и access, верно?

Так что запустите strace с вами программу снова, но получите полную информацию. Вместо strace -c используйте strace -v. Найдите ошибки и посмотрите, какие файлы их причины.

Опять же запустите вас так: strace -v -o calls.txt -e open,stat,access your-prog

Ещё вопросы

Сообщество Overcoder
Наверх
Меню