Update .DEPS.git
[chromium-blink-merge.git] / base / debug / stack_trace.cc
blob6fab183503462802baf98f9d6b60260ff8960d6b
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "base/debug/stack_trace.h"
7 #include "base/basictypes.h"
9 #include <string.h>
11 #include <algorithm>
12 #include <sstream>
14 namespace base {
15 namespace debug {
17 StackTrace::StackTrace(const void* const* trace, size_t count) {
18 count = std::min(count, arraysize(trace_));
19 if (count)
20 memcpy(trace_, trace, count * sizeof(trace_[0]));
21 count_ = count;
24 StackTrace::~StackTrace() {
27 const void *const *StackTrace::Addresses(size_t* count) const {
28 *count = count_;
29 if (count_)
30 return trace_;
31 return NULL;
34 std::string StackTrace::ToString() const {
35 std::stringstream stream;
36 OutputToStream(&stream);
37 return stream.str();
40 } // namespace debug
41 } // namespace base