This is the mail archive of the
systemtap@sourceware.org
mailing list for the systemtap project.
How can I access ULONG_MAX constant without using -g option?
- From: Tetsuo Handa <penguin-kernel at I-love dot SAKURA dot ne dot jp>
- To: systemtap at sourceware dot org
- Date: Tue, 6 May 2014 15:02:42 +0900
- Subject: How can I access ULONG_MAX constant without using -g option?
- Authentication-results: sourceware.org; auth=none
Hello.
I'm using systemtap-2.3-4.el6_5.i686 and I need to mask a value with ULONG_MAX
constant because task_current() returns 64bits value on 32bits architecture.
# uname -m
i686
# stap -e 'probe begin { printf("current=%lx\n", task_current()); exit(); }'
current=ffffffffc1681aa0
In the example output above, current=c1681aa0 is the expected value on i686.
I know I can wrap like
function get_current:long() {
return task_current() & %{ ULONG_MAX %};
}
and use get_current() instead of task_current(), but this needs -g option.
Is there a way to do it without using -g option?
Regards.