Автор Тема: Как да трасирам програма  (Прочетена 777 пъти)

kennedy

  • Напреднали
  • *****
  • Публикации: 2151
  • Николай Колев
    • Профил
Здравейте,
Как мога да трасирам програма стартирана от шел скрипт за да видя в кои файлове записва?
Активен

"за всичко иде час" Еклесиаст 3:1
всеки пост - отговор на въпрос
-----------------
24.12.2003 "MS Free"

neter

  • Global Moderator
  • Напреднали
  • *****
  • Публикации: 3408
  • Distribution: Debian, SailfishOS, CentOS
  • Window Manager: LXDE, Lipstick
    • Профил
    • WWW
Re: Как да трасирам програма
« Отговор #1 -: Jan 21, 2010, 20:28 »
Предполагам, че strace ще ти свърши работа с подобен синтаксис
Код
GeSHi (Bash):
  1. strace -p PID -o FILE
където PID е номерът на процеса (скрипта, програмата), който искаш да трасираш, а FILE е името на файла, където да се записват резултатите от трасирането. Можеш да изпълниш командата и без "-o FILE", но трудно се чете изход от трасиране в реално време, особено ако процесът, който трасираш, генерира доста заявки.
В изхода от трасирането търси редове, които започват с "open". Там ще пише кой файл е бил отварян в този момент. Например
Цитат
open("file.txt", O_WRONLY|O_CREAT|O_APPEND|O_LARGEFILE, 0666) = 3
А ако малко по-надолу има и ред с "write", значи е имало и писане в този файл. Например
Цитат
write(1, "0\n", 2)
Активен

"Да си добре приспособен към болно общество не е признак за добро здраве" - Джиду Кришнамурти