// 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 #include #include #include 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 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 StackTrace; } // namespace extensions #endif // EXTENSIONS_COMMON_STACK_FRAME_H_