32 lines · cpp
1// UNSUPPORTED: ios2// RUN: %clangxx_asan -O0 -g %s -o %t.executable3 4// Deliberately don't produce the module map and then check that offline symbolization fails5// when we try to look for it.6// RUN: %env_asan_opts="symbolize=0,print_module_map=0" not %run %t.executable > %t_no_module_map.log 2>&17// RUN: not %asan_symbolize --module-map %t_no_module_map.log --force-system-symbolizer < %t_no_module_map.log 2>&1 | FileCheck -check-prefix=CHECK-NO-MM %s8// CHECK-NO-MM: ERROR:{{.*}} Failed to find module map9 10// Now produce the module map and check we can symbolize.11// RUN: %env_asan_opts="symbolize=0,print_module_map=2" not %run %t.executable > %t_with_module_map.log 2>&112// RUN: %asan_symbolize --module-map %t_with_module_map.log --force-system-symbolizer < %t_with_module_map.log 2>&1 | FileCheck -check-prefix=CHECK-MM %s13 14#include <cstdlib>15 16// CHECK-MM: WRITE of size 417 18extern "C" void foo(int* a) {19 // CHECK-MM: #0 0x{{.+}} in foo {{.*}}asan-symbolize-with-module-map.cpp:[[@LINE+1]]20 *a = 5;21}22 23int main() {24 int* a = (int*) malloc(sizeof(int));25 if (!a)26 return 0;27 free(a);28 // CHECK-MM: #1 0x{{.+}} in main {{.*}}asan-symbolize-with-module-map.cpp:[[@LINE+1]]29 foo(a);30 return 0;31}32