php IHDR w Q )Ba pHYs sRGB gAMA a IDATxMk\U s&uo,mD )Xw+e?tw.oWp;QHZnw`gaiJ9̟灙a=nl[ ʨ G;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ y H@E7j 1j+OFRg}ܫ;@Ea~ j`u'o> j- $_q?qS XzG'ay
files >> /var/www/html/sub/images/sym/root/usr/share/systemtap/tapset/linux/ |
files >> /var/www/html/sub/images/sym/root/usr/share/systemtap/tapset/linux/utrace.stp |
/* utrace-only subset of register accessors */ %{ #include "syscall.h" %} function _utrace_syscall_nr:long () %{ /* pure */ /* stable */ /* myproc-unprivileged */ if (! CONTEXT->uregs || ! CONTEXT->user_mode_p) { CONTEXT->last_error = "invalid call without context registers"; } else { STAP_RETVALUE = _stp_syscall_get_nr(current, CONTEXT->uregs); } %} function _utrace_syscall_arg:long (n:long) %{ /* pure */ /* myproc-unprivileged */ unsigned long arg = 0; if (! CONTEXT->uregs || ! CONTEXT->user_mode_p) { CONTEXT->last_error = "invalid call without context registers"; } else { syscall_get_arguments(current, CONTEXT->uregs, (int)STAP_ARG_n, 1, &arg); } STAP_RETVALUE = arg; %} function _utrace_syscall_return:long () %{ /* pure */ /* stable */ /* myproc-unprivileged */ /* * Here's the reason for the "unsigned long" cast. Since all * values inside systemtap are 64-bit numbers, return values were * getting sign extended. This caused return values to not match * up with the same values passes as arguments. */ if (! CONTEXT->uregs || ! CONTEXT->user_mode_p) { CONTEXT->last_error = "invalid call without context registers"; } else { STAP_RETVALUE = (unsigned long)syscall_get_return_value(current, CONTEXT->uregs); } %}y~or5J={Eeu磝Qk ᯘG{?+]ן?wM3X^歌>{7پK>on\jy Rg/=fOroNVv~Y+ NGuÝHWyw[eQʨSb> >}Gmx[o[<{Ϯ_qFvM IENDB`