Forked from
Glasgow Haskell Compiler / GHC
7795 commits behind, 700 commits ahead of the upstream repository.
-
Emit an Info Table Provenance Entry (IPE) for every stack represeted info table if -finfo-table-map is turned on. To decode a cloned stack, lookupIPE() is used. It provides a mapping between info tables and their source location. Please see these notes for details: - [Stacktraces from Info Table Provenance Entries (IPE based stack unwinding)] - [Mapping Info Tables to Source Positions] Metric Increase: T12545
Emit an Info Table Provenance Entry (IPE) for every stack represeted info table if -finfo-table-map is turned on. To decode a cloned stack, lookupIPE() is used. It provides a mapping between info tables and their source location. Please see these notes for details: - [Stacktraces from Info Table Provenance Entries (IPE based stack unwinding)] - [Mapping Info Tables to Source Positions] Metric Increase: T12545
CloneStack.h 1.08 KiB
/* ---------------------------------------------------------------------------
*
* (c) The GHC Team, 2020-2021
*
* Stack snapshotting and decoding. (Cloning and unwinding.)
*
*---------------------------------------------------------------------------*/
#pragma once
extern StgClosure DLL_IMPORT_DATA_VARNAME(base_GHCziStackziCloneStack_StackSnapshot_closure);
#define StackSnapshot_constructor_closure DLL_IMPORT_DATA_REF(base_GHCziStackziCloneStack_StackSnapshot_closure)
StgStack* cloneStack(Capability* capability, const StgStack* stack);
void sendCloneStackMessage(StgTSO *tso, HsStablePtr mvar);
StgMutArrPtrs* decodeClonedStack(Capability *cap, StgStack* stack);
#include "BeginPrivate.h"
#if defined(THREADED_RTS)
void handleCloneStackMessage(MessageCloneStack *msg);
#endif
StgWord getStackFrameCount(StgStack* stack);
StgWord getStackChunkClosureCount(StgStack* stack);
void copyPtrsToArray(Capability *cap, StgMutArrPtrs* arr, StgStack* stack);
StgClosure* createPtrClosure(Capability* cap, InfoProvEnt* ipe);
StgMutArrPtrs* allocateMutableArray(StgWord size);
#include "EndPrivate.h"