strace

نرم افزار تصویر:
strace
جزئیات نرم افزار:
نسخه: 4.19 به روز شده
ها تاریخ: 23 Nov 17
پروانه: رایگان
محبوبیت: 23

Rating: 5.0/5 (Total Votes: 1)

strace یک منبع باز و نرم افزار آزادانه توزیع شده برای توسعه دهندگان و مدیران سیستم است، ارائه یک ردیاب تماس تلفنی سیستم در C و طراحی شده برای اجرا به طور انحصاری تحت سیستم عامل های گنو / لینوکس است.

این برنامه یک ابزار بسیار مفید اشکال زدایی، آموزشی و تشخیصی است که می تواند تمام تماس های سیستم تولید شده توسط یک برنامه یا یک فرایند را جمع آوری کند و یک ردی را چاپ کند. این یک برنامه خط فرمان است که تنها از یک محیط کنسول یا از طریق یک برنامه شبیه ساز ترمینال استفاده می شود.

این ابزار می تواند توسط متخصصان تشخیصی، عیب یابی و همچنین مدیران سیستم مورد استفاده قرار گیرد که می خواهند یک راه حل بی ارزش برای حل مشکلات با برنامه های منبع بسته باشند. این نوشته توسط دیمیتری ویلیو لوین، رولند مک گراث و ویشرت اکرممان نوشته شده است.


گزینه های خط فرمان

مانند هر برنامه خط فرمان دیگر، Strace گزینه های متنوعی از گزینه های خط فرمان را ارائه می دهد که به کاربر اجازه می دهد تا به راحتی از تمام قابلیت ها و ویژگی های آن برای رسیدن به وظایف خود استفاده کند. تمام گزینه های خط فرمان آن را می توان در یک نگاه با اجرای & lsquo؛ strace --help & rsquo؛ فرمان.

از میان جالب ترین گزینه های فرمان خطی، می توانیم از شمارش زمان ها، تماس ها و خطاها برای هر syscall، حمایت برای خلاصه شدن تاخیر syscall، پشتیبانی برای ردیابی دسترسی به یک مسیر خاص، حمایت برای فعال کردن خروجی اشکال زدایی به stderr، و همچنین حمایت از اجرای یک روند تکراری به عنوان یک نوه جداگانه، نه به عنوان یک پدر و مادر.

علاوه بر این، شما می توانید اطلاعات ردیابی را به یک فایل خاص بجای stderr ارسال کنید، برای تعیین سربار برای ردیابی syscalls به usecs سربار، برای تنظیم یک فایل PID برای روند ردیابی، برای محدود کردن طول رشته های چاپ به strsize chars، برای اجرای دستورات به عنوان username خواندن setgid و / یا setuid، و برای جدا کردن یک syscall خاص.


شروع به کار با strace

strace تنها به عنوان یک توالی منبع توزیع شده است، اما می تواند به راحتی بر روی توزیع های متعدد لینوکس از مخازن اصلی نرم افزار آن نصب شود. برای نصب آن از منابع، به سادگی آخرین نسخه از Softoware را دانلود کنید، بایگانی را در مکان انتخابی خود ذخیره کنید و آن را باز کنید.

یک برنامه ترمینال را باز کنید، به محل فایلهای بایگانی استخراج شده بروید (به عنوان مثال cd /home/softoware/strace-4.9)، دستور ./configure && را اجرا کنید. & rsquo؛ دستور را برای پیکربندی و کامپایل strace، و سپس اجرای & lsquo؛ را نصب کنید & rsquo؛ دستور به عنوان root یا sudo نصب و rsquo؛

چه جدید در این نسخه است:

ارتقاء:
گزینه ی اضافه شده برای چاپ پروتکل و آدرس اطلاعات مرتبط با توصیفگرهای سوکت.
Extended & quot؛ -e خواندن = تنظیم & quot؛ و & quot؛ نوشتن = مجموعه & quot؛ گزینه هایی برای پوشش دادن sendmsg، recvmsg، sendmmsg و recvmmsg syscalls.
اجرای تمام دستورات Ioctl 32 بیتی کامل (آدرس اشکال دبیان # 692913 و اشکال فدورا # 902788).
پیاده سازی API PTRACE_GETREGS API در ia64.
پیاده سازی API PTRACE_GETREGS API در MIPS.
پیاده سازی API PTRACE_GETREGSET API در s390 / s390x.
رمزگشایی از رمز عبور getrandom و seccomp انجام شده است.
تمام رمزگشایی مجموعه های قابلیت 64 بیتی را اجرا می کند.
رمزگشایی تمام دستورات prctl را اجرا می کند.
رمزگشایی از دستورات پارامترهای Ioctl انجام شده است.
رمزگشایی اجرا شده از دستورات IQTL evdev.
رمزگشایی از دستورات v4l ioctl انجام شده است.
رمزگشایی SG_IO v4 Ioctl انجام شده است.
رمز گشایی FIFREEZE / FITHAW / FITRIM انجام شده دستورات Ioctl را اجرا می کند.
رمزگشایی FALLOC_FL_ * پرچم های شکست خورده را اجرا می کند.
رمزگشایی mask سیگنال rt_sigreturn را در aarch64، x32 و x86_64 انجام داد.

رمزگشایی پیشرفته تر از دستورات Ioctl بدون فهرست.
رمزگشایی پیشرفته از سیستم های دریافتی و سیستم های Setsockopt را بهبود می بخشد.
رمزگشایی پیشرفته sysinfo syscall.
رمزگشایی پیشرفته ساختار cmsghdr.
رمزگشایی پیشرفته وضعیت صبر کردن.
پشتیبانی از AIO در معماری های غیر x86 با استفاده از libaio.h خارجی.
O_TMPFILE اضافه شده به لیست پرچم های حالت باز شناخته شده است.
لیستی از ثابت های نوع فایلسیستم که در رمزگشایی سیستم های خانواده خانواده statfs استفاده می شود به روز شده است.
به روز رسانی لیست از CAP_ *، PR_ *، PTRACE_ *، SCHED_ *، SO_ *، SOL_ *، SWAP_FLAG_ *، و TFD_ * ثابت.
لیستی از ثابت های سیگنال از لینوکس 3.19 به روز شد.
لیستی از ثابت های errno از لینوکس 3.19 به روز شد.
لیست های دستورات Ioctl از لینوکس 3.9 به روز شد.
لینوکس 3.19 اضافه شده است.
رفع اشکال:
خطاهای مختلف ثابت در نقشه برداری بین اعداد فراخوانی سیستمی و اطلاعات مرتبط مانند تعداد آرگومان فراخوانی سیستمی، نام فراخوانی سیستمی و رسیور فراخوانی سیستمی.
ثابت به نقل از مسائل در توصیف چاپ، نام فایل، نام رابط شبکه، اعضای ساختار utsname، نام دستگاه / حجم BLK * دستورات IOCTL.
ثابت رمزگشایی uid_t / git_tپتانسیل ثابت خارج از محدوده مسائل را در decoders getdents / getdents64 خواند.
برخی از معماریها دارای محدودیت های باز شدن پرچم های بالقوه هستند.
رمزگشایی ثابت ساختار ifreq.ifr_name.
رمزگشایی ثابت از دستور SIOCSIFNAME ioctl.
رمزگشایی ثابت RENAME_ * renameat2 پرچم.
رمزگشایی ثابت UTIME_NOW / UTIME_OMIT structures timval.
رمزگشایی ثابت نامحدود ipc غیر مستقیم در برخی از معماری.
رمزگشایی ثابت fanotify_mark syscall در معماری 32 بیتی.
رمزگشایی ثابت 32 بیتی ساختارهای Stat در معماری 64 بیتی.
رمزگشایی ثابت 32 بیتی struct cmsghdr در معماری 64 بیتی.
رمزگشایی ثابت 32 بیت preadv / pwritev بر روی معماری 64 بیتی جبران می شود.
رمزگشایی ثابت ماسک سیگ رتن / rt_sigreturn در ia64، ppc، ppc64، sparc، sparc64، mips، و s390.
خروجی دستور اشارهگر ثابت (-i option) در معماریهایی که چندین شخصیت را پشتیبانی می کنند.
رفتار ثابت از & quot؛ -e خواندن = تنظیم & quot؛ و & quot؛ نوشتن = مجموعه & quot؛ هنگامی که خواندن و نوشتن مجموعه تقاطع.
ثابت ساخت بر روی سیستم هایی که ساختار sigaction هیچ عضو sa_restorer ندارد.
ساخت ثابت با uclibc و musl libc.
قابلیت حمل:

هسته لینوکس & gt؛ = 2.5.46 مورد نیاز است. نسخه های قدیمی تر بدون پشتیبانی مناسب PTRACE_SETOPTIONS کار نخواهند کرد.
در MIPS، کرنل لینوکس & gt؛ = 2.6.15 مورد نیاز است. نسخه های قدیمی تر بدون پشتیبانی مناسب PTRACE_GETREGS کار نخواهند کرد.
در s390 و s390x، کرنل لینوکس و gt؛ = 2.6.27 مورد نیاز است. نسخه های قدیمی تر بدون پشتیبانی مناسب PTRACE_GETREGSET کار نخواهند کرد.

چه جدید در نسخه 4.9 است:

تغییرات در رفتار:
پشتیبانی از OABI غیر فعال در سیستم های ARM EABI به طور پیش فرض، گزینه option -enable-arm-oabi اضافه شده است تا آن را در زمان پیکربندی فعال کند.
ارتقاء:
گزینه experimental -k برای چاپ پشته رکورد بعد از هر یک از syscall ردیابی شده اضافه شده است.
گزینه -w برای تولید آمار در زمان تأخیر syscall اضافه شده است. (آدرس اشکال دبیان # 457497).
پشتیبانی ARC معماری اضافه شده است.
پشتیبانی از API PTRACE_GETREGS در PowerPC.
پشتیبانی bionic libc و musl libc پیشرفته.
ردیابی پیشرفته پردازش شخصیت x86 در x86_64 و x32.
ردیابی پیشرفته فرایندهای شخصیت ARM در AArch64.
تشخیص شخصیت 32/64 بایت پیشرفته در PowerPC.
رمز گشایی اعمال شده از add_key، ioprio_get، ioprio_set، kexec_load، keyctl، renameat2 و request_key syscalls.
رمزگشایی رونویسی انتخاب، انتخاب، و io_submit syscalls.
رمزگشایی پیشرفته حذف_module، fanotify_init، fanotify_mark، fcntl، setdomainname، sethostname، setns و sync_file_range syscalls.
رمزگشایی پیشرفته Bitmask سیگنال.
رمزگشایی پیشرفته توصیفگرهای فایل.
رمزگشایی siginfo_t پیشرفته.
رمزگشایی PF_NETLINK پیشرفته.

به روز شده CLOCK_ * ثابت (آدرس اشکال فدورا # 1088455).
لینوکس 3.16 اضافه شده است.
رفع اشکال:
shmat و shmdt به مجموعه ای از سیستم های حافظه مربوط به نقشه برداری اضافه شده است.
جداسازی ثابت از فرآیندهای متوقف شده.
ثابت fanotify_mark رمزگشایی در معماری 32bit.
رمزگشایی افست ثابت را در preadv و syscalls pwritev.
رمزگشایی ثابت را برای glibc انتخاب کنید در حالت _FORTIFY_SOURCE.
رمزگشایی ثابت syscall epoll_ctl با اشکال EPOLL_CTL_DEL.
ثابت ساخت زمان و درگیری (آدرس اشکال فدورا # 993384).
اصلاحات متفرقه در صفحه دستی. (آدرس اشکال Debian # 725987).

چه جدید در نسخه 4.8 جدید است:

تغییرات در رفتار:
در صورت بروز ختنه معمولی Strace، هنگامی که خروجی ردیابی به یک لوله هدایت می شود، Strace اکنون آن را بسته و منتظر پایان خاتمه لوله می شود قبل از خروج.
ارتقاء:
پیگیری پیاده سازی شده با استفاده از API PTRACE_SEIZE (در صورت موجود بودن).
شناسایی شخصیت فرایند مبتنی بر PTRACE_GETREGSET قابل اجرا بر روی x86-64 و x32 (در صورت امکان).
گزینه trace = گزینه حافظه برای ردیابی syscalls مربوط به نقشه برداری حافظه اضافه شده است.
گزینه documented -b.
پیام های وضعیت خروج اجازه داده شده را با دادن گزینه -q دوبار خنثی می کنند.
پشتیبانی از معماری AArch64 اضافه شده است (آدرس اشکال دبیان # 693074 و اشکال فدورا # 969858).
اضافه شدن پشتیبانی از معماری OpenRISC 1000، Meta و Xtensa.
اضافه شده شخصیت tilegx برای کاشی.
پشتیبانی پیشرفته از معماری NOMMU.
رمزگشایی پیشرفته تر شدن، mmap، perf_event_open، ptrace، و procctl syscalls.
لینوکس 3.9 برای ورود به سیستم جدید وارد شده است.
لیستی از نامهای رایج Ioctl را از لینوکس 3.9 بازسازی کرد.
لیستی از ثابتهای errno را به روز کرد.
به روز رسانی لیست های AF_ *، MADV_ *، MAP_ *، MSG_ *، MS_ *، PF_ *، PR_ *، PTRACE_O_ * و TCP_ * ثابت.

رمزگشایی اکتیو UBI انجام شده است.
& amp؛ & quot؛ * 32 & quot؛ حذف شده است نام Ioctl
رفع اشکال:
ثابت ERESTARTNOINTR نشت به کاربران space در هسته های باستانی (آدرس اشکال فدورا # 659382).
تجزیه رشته رشته آزمایشی کرنل ثابت (آدرس اشکال دبیان # 702309).
رمزگشایی ثابت از syscalls xattr (آدرس اشکال فدورا # 885233).
دست زدن به فایل های ثابت با اعداد 64 بیتی درون 32 بیتی (آدرس اشکال فدورا # 912790).
چرخه ردیابی ثابت در SPARC.
رمزگشایی ثابت fadvise64، defocate، ftruncate64، io_submit، pread، preadv، pwrite، pwritev، readahead، sigaltstack، sync_file_range، sysctl، و truncate64 syscalls.
دسته های ثابت سوئیچ چند در بیشتر معماری های پشتیبانی شده.
رمزگشایی ثابت شخصیت 32 بیتی غیر بومی recv [m] msg syscalls.
رمزگشایی ثابت چند صدای شخصی 32 بیتی روی x32.
رمزگشایی ثابت از استدلال های طولانی مدت syscall در معماری ARM، MIPS / o32، PowerPC، S390x و Tile.
رمزگشایی semtimedop ثابت در S390x.
ثابت رمزگشایی sram_alloc در Blackfin.
ساختن ثابت زمانی که process_vm_readv خرد است.
ساخت ثابت با نسخه های قدیمیتر از libaio.h.

چه جدید در نسخه 4.7 منتشر شده است:

این یک نسخه با ثبات است با رفع اشکالات معمول، پشتیبانی پیشرفته برای هسته های تازه لینوکس و سایر پیشرفت ها.

چه جدید در نسخه 4.6 است:

این یک نسخه با ثبات است با رفع اشکالات معمول، پشتیبانی بیشتر برای هسته های تازه لینوکس و سایر پیشرفت ها، از جمله یک روش جدید پیروی از کلون، fork و syscalls vfork با استفاده از امکانات صریح هسته لینوکس برای ردیابی ایجاد موضوعات و پروسه های فرزند.

در نسخه 4.5.20 جدید است:

ارتقاء:
رمزگشایی سیستم های جدید لینوکس را اجرا می کند: inotify_init1، recvmmsg.
رمز گشایی اساسی جدید سیستمهای لینوکس را اجرا کرد: preadv، pwritev، rt_tgsigqueueinfo، perf_event_open.
رمزگشایی پیشرفته های رمزگذاری شده اخیر را در معماری های غیر معماری x86 با جایگزینی یک رمز گشایی با استفاده از تجزیه کننده های دقیق که قبلا برای x86 / x86-64 فعال شده اند، افزایش داد.
اجرای گزینه -C برای ترکیب خروجی منظم و -c. (آدرس اشکال Debian # 466196)
رمزگشایی پیشرفته ترانزیت ها و MRMMs.
رمز گشایی گزینه های سوکت SOL_PACKET پیشرفته.
لیستی از نام های Ioctl بازسازی شده از لینوکس 2.6.33.
پشتیبانی از معماری TILE اضافه شده است.
رفع اشکال:
ساخت ثابت با سرصفحه های هسته لینوکس 2.6.32-rc5 +. (آدرس اشکال Debian # 560516 و اشکال Fedora # 539044)
ثابت در MIPS ساخت
دستکاری ثابت سیستم های لینوکس بدون struct statfs64.
ماسک سيگنال گزارش شده توسط sigreturn در powerpc.
سرریز بافر پتانسیل ثابت در رمزگشای انتخاب شده. (آدرس اشکال Fedora # 556678)
اصلاح msgsnt غیر مستقیم ipccall رمزگشایی.
اصلاح رمزگشایی سیگنال های 64bit. (آدرس اشکال Debian # 570603)


اصلاح می شود decoding getsockopt در معماری که در آن sizeof (طولانی) & gt؛ sizeof (int) (آدرس اشکال Debian # 494844)
تصحیح رمزگشایی epoll_pwait. (آدرس اشکال Debian # 513014)
تصفیه تصحیح موضوعات کشته شده.

نرم افزار های مشابه

BuGLe
BuGLe

17 Feb 15

python-ptrace
python-ptrace

11 May 15

PuDB
PuDB

20 Feb 15

PureTest
PureTest

11 May 15

نظرات به strace

نظر یافت نشد
اضافه کردن نظر
روشن کردن تصاویر!