Проследяване на системни повиквания - команда strace
Ние лекуваме вашия компютър безплатно! Авторът на блога Андрей Поволокин
Отстраняване на грешки със системни повиквания за проследяване на Strace
Някои проблеми могат да бъдат проследени, докато се наблюдава приложението в потребителското пространство. В допълнение, само въз основа на наблюдението на работата на водача, можете да направите заключение относно правилната му работа. Например можем да получим увереност, че scull работи правилно, след като наблюдаваме как се справя с прехвърлянето на различни количества данни.
Има различни начини за наблюдение на работата на програма за потребителско пространство. Можете да стартирате дебъгера и да преминете през функциите на програмата, можете да добавите отчети за печат към програмата, за да отпечатате интересна информация, или да стартирате програмата под помощната програма strace. Тук ще обсъдим последната опция за наблюдение на програмата, която изглежда най-интересна за проверка на кода на ядрото.
Командата strace е мощна инструмент, който показва системни повиквания, изпълнява се от програма, работеща в потребителско пространство. Командата може да показва не само имената на системни повиквания, но и аргументите за извикване и връщаните стойности в символна форма. Ако функцията прекратява неправилно, се показват както символната стойност на грешката (например ENOMEM), така и съответният низ (Няма памет). Командата strace има много незадължителни параметри на командния ред. Най-полезните от тях са -t за показване на времето, когато функцията е била извикана, -T за показване на времето, прекарано в изпълнение на функцията, -e за ограничаване на видовете показвани повиквания и -o за пренасочване на изхода към файл. По подразбиране помощната програма strace отпечатва информация на stderr.