Provides low- and high-level debug methods for ALib Boxing.
This type is not constructible, as all method are static.
To shorten custom type names, custom namespaces might be added to static vector RemovableNamespaces before invoking a method.
- Note
- While some of the methods are written with a non-capital letter (which usually indicates that they are
protected
or private
), those are still declared public
. These methods are "inner" methods used by the similar named capitalized methods. Their use is recommended, when writing custom "composite" debug-functions, as the various output parameters might be reused with subsequent invocations.
- Availability
- This struct is only available if compiler symbol ALIB_DEBUG_BOXING is set.
- The following methods are available independent of the ALib Distribution.
- The following methods become available if module ALib Strings is included in the ALib Distribution:
- All other methods become available if module ALib BaseCamp is included in the ALib Distribution.
- See also
- Chapter 12.7 Debug Helpers of the Programmer's Manual of module ALib Boxing.
Definition at line 124 of file dbgboxing.hpp.
|
static ALIB_API AString | DumpAll () |
|
static ALIB_API void | DumpCustomFunctionHashMapMetrics (AString &target, bool detailedBucketList) |
|
static ALIB_API alib::AString | DumpFunctions (const std::vector< std::pair< const std::type_info *, uinteger > > &input, const String &headline=EMPTY_STRING, const String &indent=EMPTY_STRING) |
|
static ALIB_API void | dumpFunctions (const std::vector< std::pair< const std::type_info *, uinteger > > &input, AString &output, const String &headline, const String &indent, detail::DbgStringTable< uinteger > &tmpStrings) |
|
static ALIB_API AString | DumpVTables (bool staticVtables, bool includeFunctions=false) |
|
static ALIB_API void | dumpVTables (AString &target, detail::DbgStringTable< const detail::VTable * > &vtableNames, bool staticVtables, bool includeFunctions) |
|
static ALIB_API void | getFunctionTypes (const detail::FunctionTable &input, std::vector< std::pair< const std::type_info *, uinteger > > &output) |
|
static ALIB_API std::vector< std::pair< const std::type_info *, uinteger > > | GetKnownFunctionTypes () |
|
static ALIB_API std::vector< detail::VTable * > | GetKnownVTables () |
|
static std::vector< std::pair< const std::type_info *, uinteger > > | GetSpecificFunctionTypes (const Box &box) |
|
static std::vector< std::pair< const std::type_info *, uinteger > > | GetSpecificFunctionTypes (const detail::VTable *vtable) |
|
static ALIB_API AString & | removeNamespaces (AString &string, integer startIndex) |
|
template<typename TBoxable > |
static AString | TypeInfo (const Box &box, const String &headline=A_CHAR("Boxing Information For Boxable Type: "), const String &indent=A_CHAR(" ")) |
|
template<typename TBoxable > |
static AString | TypeInfo (const String &headline=A_CHAR("Boxing Information For Boxable Type: "), const String &indent=A_CHAR(" ")) |
|
static ALIB_API void | typeInfo (AString &target, const detail::VTable *vtable, const String &indent, bool srcIsPointer, bool isValueTypeCustomized, bool isPointerTypeCustomized, bool fitsToPlaceholder, bool copyConstructible, bool triviallyDestructible, bool isUnboxable) |
|
static AString | TypeName (const Box &box) |
|
static AString | TypeName (const detail::VTable *vtable) |
|
static ALIB_API void | typeName (const detail::VTable *vtable, AString &result) |
|
std::vector< std::pair< const std::type_info *, uinteger > > GetKnownFunctionTypes |
( |
| ) |
|
|
static |
Returns a vector of std::type_info
objects, representing all function types that either a default or a type specific implementation has been registered for.
A second value in the vector provides the number of invocations of a default implementation. If such is not available, this number is set to std::numeric_limits<uinteger>::max()
.
The list includes the built-in function types.
- See also
- The result can be conveniently passed to DumpFunctions.
- Returns
- A vector of pairs of type information structs and usage numbers.
Definition at line 201 of file vtable.cpp.
template<typename TBoxable >
Returns human-readable information about the type TBoxable in respect to how boxing objects of this type is performed.
The implementation of this method creates a default value of TBoxable, boxes this and returns the result of TypeInfo(const Box&,const String&,const String&). Hence, for types that are not default constructible, inner function TypeInfo has to be used with an accordingly boxed "sample" of type TBoxable
- Note
- Does not work for type
void*
, which is not customizable anyhow (always boxed as void*
).
- Availability
- This method is included only if module ALib Strings is included in the ALib Distribution.
- Template Parameters
-
TBoxable | The boxable type to investigate in. |
- Parameters
-
headline | The headline to write. |
indent | Spaces to write before each entry. |
- Returns
- A string containing the requested information.
Definition at line 295 of file dbgboxing.hpp.