12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- // Copyright (c) 2012 The Chromium Authors. All rights reserved.
- // Use of this source code is governed by a BSD-style license that can be
- // found in the LICENSE file.
- #include "base/debug/stack_trace.h"
- #include "base/basictypes.h"
- #include <string.h>
- #include <algorithm>
- #include <sstream>
- namespace base {
- namespace debug {
- StackTrace::StackTrace(const void* const* trace, size_t count) {
- count = std::min(count, arraysize(trace_));
- if (count)
- memcpy(trace_, trace, count * sizeof(trace_[0]));
- count_ = count;
- }
- StackTrace::~StackTrace() {
- }
- const void *const *StackTrace::Addresses(size_t* count) const {
- *count = count_;
- if (count_)
- return trace_;
- return NULL;
- }
- std::string StackTrace::ToString() const {
- std::stringstream stream;
- #if !defined(__UCLIBC__)
- OutputToStream(&stream);
- #endif
- return stream.str();
- }
- } // namespace debug
- } // namespace base
|