12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- // Copyright 2013 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.
- #ifndef EXTENSIONS_COMMON_STACK_FRAME_H_
- #define EXTENSIONS_COMMON_STACK_FRAME_H_
- #include <stddef.h>
- #include <memory>
- #include <string>
- #include <vector>
- namespace extensions {
- struct StackFrame {
- StackFrame();
- StackFrame(const StackFrame& frame);
- StackFrame(uint32_t line_number,
- uint32_t column_number,
- const std::u16string& source,
- const std::u16string& function);
- ~StackFrame();
- // Construct a stack frame from a reported plain-text frame.
- static std::unique_ptr<StackFrame> CreateFromText(
- const std::u16string& frame_text);
- bool operator==(const StackFrame& rhs) const;
- // Note: we use uint32_t instead of size_t because this struct is sent over
- // IPC which could span 32 & 64 bit processes. This is fine since line numbers
- // and column numbers shouldn't exceed UINT32_MAX even on 64 bit builds.
- uint32_t line_number;
- uint32_t column_number;
- std::u16string source;
- std::u16string function; // optional
- };
- typedef std::vector<StackFrame> StackTrace;
- } // namespace extensions
- #endif // EXTENSIONS_COMMON_STACK_FRAME_H_
|