Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e2960910 authored by Christopher Ferris's avatar Christopher Ferris
Browse files

Create an UnwindMapLocal object.

The way libunwind handles local unwinds is different from remote unwinds,
so create a new map object to handle the differences.

Add new test to verify the map data is being generated correctly.

Add new tests to check for leaks.

Refactor the BACK_LOGW code into a single header file.

Change-Id: I01f3cbfc4b927646174ea1b614fa25d23b9b3427
parent 223fc42b
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -45,7 +45,7 @@ public:
  virtual ~BacktraceMap();

  // Get the map data structure for the given address.
  const backtrace_map_t* Find(uintptr_t addr);
  virtual const backtrace_map_t* Find(uintptr_t addr);

  // The flags returned are the same flags as used by the mmap call.
  // The values are PROT_*.
+2 −0
Original line number Diff line number Diff line
@@ -129,9 +129,11 @@ endif # arm64

backtrace_test_cflags_target := \
	-DGTEST_OS_LINUX_ANDROID \
	-DENABLE_PSS_TESTS \

backtrace_test_src_files := \
	backtrace_test.cpp \
	GetPss.cpp \
	thread_utils.c \

backtrace_test_ldlibs := \
+1 −0
Original line number Diff line number Diff line
@@ -27,6 +27,7 @@
#include <backtrace/BacktraceMap.h>

#include "BacktraceImpl.h"
#include "BacktraceLog.h"
#include "thread_utils.h"

//-------------------------------------------------------------------------
+0 −5
Original line number Diff line number Diff line
@@ -21,11 +21,6 @@
#include <backtrace/BacktraceMap.h>

#include <sys/types.h>
#include <log/log.h>

// Macro to log the function name along with the warning message.
#define BACK_LOGW(format, ...) \
  ALOGW("%s: " format, __PRETTY_FUNCTION__, ##__VA_ARGS__)

class BacktraceImpl {
public:
+28 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2014 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

#ifndef _LIBBACKTRACE_BACKTRACE_LOG_H
#define _LIBBACKTRACE_BACKTRACE_LOG_H

#define LOG_TAG "libbacktrace"

#include <log/log.h>

// Macro to log the function name along with the warning message.
#define BACK_LOGW(format, ...) \
  ALOGW("%s: " format, __PRETTY_FUNCTION__, ##__VA_ARGS__)

#endif // _LIBBACKTRACE_BACKTRACE_LOG_H
Loading