diff options
author | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2020-02-13 01:55:33 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2020-02-13 01:55:33 +0000 |
commit | c01f3e214988731c63bf803fff334efc26e32a43 (patch) | |
tree | 8ddbfa08819ce7b1b897f11fd3401713f38a3e38 | |
parent | bc1b381946e07bcb458fa697df91af37272e2945 (diff) | |
parent | dbf305d751615d3fa05114c09e854c1e26771e9d (diff) | |
download | extras-c01f3e214988731c63bf803fff334efc26e32a43.tar.gz |
Merge "[GWP-ASan] Scan GWP-ASan regions in maps." am: 5038d9872f am: fca09e23c7 am: dbf305d751
Change-Id: I904e5b401063ca903e68403cd8540b29ddafe424
-rw-r--r-- | memory_replay/NativeInfo.cpp | 3 | ||||
-rw-r--r-- | memory_replay/tests/NativeInfoTest.cpp | 54 |
2 files changed, 53 insertions, 4 deletions
diff --git a/memory_replay/NativeInfo.cpp b/memory_replay/NativeInfo.cpp index ec131ddc..3439a29d 100644 --- a/memory_replay/NativeInfo.cpp +++ b/memory_replay/NativeInfo.cpp @@ -76,7 +76,8 @@ void NativeGetInfo(int smaps_fd, size_t* rss_bytes, size_t* va_bytes) { &name_pos) == 2) { char* map_name = &buf[buf_start + name_pos]; if (strcmp(map_name, "[anon:libc_malloc]") == 0 || strcmp(map_name, "[heap]") == 0 || - strncmp(map_name, "[anon:scudo:", 12) == 0) { + strncmp(map_name, "[anon:scudo:", 12) == 0 || + strncmp(map_name, "[anon:GWP-ASan", 14) == 0) { total_va_bytes += end - start; native_map = true; } else { diff --git a/memory_replay/tests/NativeInfoTest.cpp b/memory_replay/tests/NativeInfoTest.cpp index 845ec043..5c33eb71 100644 --- a/memory_replay/tests/NativeInfoTest.cpp +++ b/memory_replay/tests/NativeInfoTest.cpp @@ -269,7 +269,55 @@ TEST_F(NativeInfoTest, mix_heap_anon) { "KernelPageSize: 4 kB\n" "MMUPageSize: 4 kB\n" "Locked: 0 kB\n" - "Name: [anon:scudo:test]\n"; + "Name: [anon:scudo:test]\n" + "b8f4c000-b8f4d000 rw-p 00000000 00:00 0 [anon:GWP-ASan Guard Page]\n" + "Size: 4 kB\n" + "Rss: 0 kB\n" + "Pss: 0 kB\n" + "Shared_Clean: 0 kB\n" + "Shared_Dirty: 0 kB\n" + "Private_Clean: 0 kB\n" + "Private_Dirty: 0 kB\n" + "Referenced: 0 kB\n" + "Anonymous: 0 kB\n" + "AnonHugePages: 0 kB\n" + "Swap: 0 kB\n" + "KernelPageSize: 4 kB\n" + "MMUPageSize: 4 kB\n" + "Locked: 0 kB\n" + "Name: [anon:GWP-ASan Guard Page]\n" + "b8f4d000-b8f4e000 rw-p 00000000 00:00 0 [anon:GWP-ASan Alive Slot]\n" + "Size: 4 kB\n" + "Rss: 4 kB\n" + "Pss: 0 kB\n" + "Shared_Clean: 0 kB\n" + "Shared_Dirty: 0 kB\n" + "Private_Clean: 0 kB\n" + "Private_Dirty: 0 kB\n" + "Referenced: 0 kB\n" + "Anonymous: 0 kB\n" + "AnonHugePages: 0 kB\n" + "Swap: 0 kB\n" + "KernelPageSize: 4 kB\n" + "MMUPageSize: 4 kB\n" + "Locked: 0 kB\n" + "Name: [anon:GWP-ASan Alive Slot]\n" + "b8f4e000-b8f4f000 rw-p 00000000 00:00 0 [anon:GWP-ASan Guard Page]\n" + "Size: 4 kB\n" + "Rss: 0 kB\n" + "Pss: 0 kB\n" + "Shared_Clean: 0 kB\n" + "Shared_Dirty: 0 kB\n" + "Private_Clean: 0 kB\n" + "Private_Dirty: 0 kB\n" + "Referenced: 0 kB\n" + "Anonymous: 0 kB\n" + "AnonHugePages: 0 kB\n" + "Swap: 0 kB\n" + "KernelPageSize: 4 kB\n" + "MMUPageSize: 4 kB\n" + "Locked: 0 kB\n" + "Name: [anon:GWP-ASan Guard Page]\n"; ASSERT_TRUE(TEMP_FAILURE_RETRY( write(tmp_file_->fd, smaps_data.c_str(), smaps_data.size())) != -1); @@ -278,6 +326,6 @@ TEST_F(NativeInfoTest, mix_heap_anon) { size_t rss_bytes = 1; size_t va_bytes = 1; NativeGetInfo(tmp_file_->fd, &rss_bytes, &va_bytes); - EXPECT_EQ(126976U, rss_bytes); - EXPECT_EQ(147456U, va_bytes); + EXPECT_EQ(131072U, rss_bytes); + EXPECT_EQ(159744U, va_bytes); } |