Skip to content

Commit b981dc8

Browse files
committedMay 12, 2015
Sanitizers: Implement GetRSS on Mac OS X
Reviewers: kcc, glider, dvyukov Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D9636 llvm-svn: 237173
1 parent 5708cca commit b981dc8

File tree

1 file changed

+12
-3
lines changed

1 file changed

+12
-3
lines changed
 

‎compiler-rt/lib/sanitizer_common/sanitizer_mac.cc

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,11 @@
3030
#include "sanitizer_procmaps.h"
3131

3232
#include <crt_externs.h> // for _NSGetEnviron
33+
#include <errno.h>
3334
#include <fcntl.h>
35+
#include <libkern/OSAtomic.h>
3436
#include <mach-o/dyld.h>
37+
#include <mach/mach.h>
3538
#include <pthread.h>
3639
#include <sched.h>
3740
#include <signal.h>
@@ -42,8 +45,6 @@
4245
#include <sys/sysctl.h>
4346
#include <sys/types.h>
4447
#include <unistd.h>
45-
#include <libkern/OSAtomic.h>
46-
#include <errno.h>
4748

4849
namespace __sanitizer {
4950

@@ -333,7 +334,15 @@ MacosVersion GetMacosVersion() {
333334
}
334335

335336
uptr GetRSS() {
336-
return 0;
337+
struct task_basic_info info;
338+
unsigned count = TASK_BASIC_INFO_COUNT;
339+
kern_return_t result =
340+
task_info(mach_task_self(), TASK_BASIC_INFO, (task_info_t)&info, &count);
341+
if (UNLIKELY(result != KERN_SUCCESS)) {
342+
Report("Cannot get task info. Error: %d\n", result);
343+
Die();
344+
}
345+
return info.resident_size;
337346
}
338347

339348
void *internal_start_thread(void (*func)(void *arg), void *arg) { return 0; }

0 commit comments

Comments
 (0)
Please sign in to comment.