mirror of
https://review.haiku-os.org/haiku
synced 2025-02-11 16:19:28 +01:00
* Added the beginnings of the debug info abstraction. Currently we can only load the symbols via the debugger. * Added a job to retrieve debug info for an image. Extended the GetStackTraceJob to support waiting for image debug info to be loaded. * Extended ImageInfo by text/data address and size. * Removed StackFrameX86 and made StackFrame a simple non-polymorphic class featuring all the needed data. The really architecture-dependent is in the referenced CpuState already. Added Image* and FunctionDebugInfo* attributes, referring to the image respectively debug info for the function hit by the instruction pointer. * Switched StrackTrace's StackFrame management from DoublyLinkedList to BObjectList. This makes it more comfortable to use. * Changed the code for creating stack traces: - The creation of the StackTrace object and the main loop to collect the frames are now located in the no longer virtual Architecture::CreateStackTrace(). - The decision how to create a StackFrame is based on the instruction pointer. If it hit a function for which debug info is available, the respective DebugInfo::CreateStackFrame() is used, otherwise we fall back to the new virtual Architecture::CreateStackFrame(). * Adjusted the stack trace view to also show function names (mangled ATM). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31142 a95241bf-73f2-0310-859d-f6bbb57e9c96
29 lines
609 B
C++
29 lines
609 B
C++
/*
|
|
* Copyright 2009, Ingo Weinhold, ingo_weinhold@gmx.de.
|
|
* Distributed under the terms of the MIT License.
|
|
*/
|
|
#ifndef FUNCTION_DEBUG_INFO_H
|
|
#define FUNCTION_DEBUG_INFO_H
|
|
|
|
#include <Referenceable.h>
|
|
|
|
#include "ArchitectureTypes.h"
|
|
|
|
|
|
class DebugInfo;
|
|
|
|
|
|
class FunctionDebugInfo : public Referenceable {
|
|
public:
|
|
virtual ~FunctionDebugInfo();
|
|
|
|
virtual DebugInfo* GetDebugInfo() const = 0;
|
|
virtual target_addr_t Address() const = 0;
|
|
virtual target_size_t Size() const = 0;
|
|
virtual const char* Name() const = 0;
|
|
virtual const char* PrettyName() const = 0;
|
|
};
|
|
|
|
|
|
#endif // FUNCTION_DEBUG_INFO_H
|