2
* The contents of this file are subject to the Initial
3
* Developer's Public License Version 1.0 (the "License");
4
* you may not use this file except in compliance with the
5
* License. You may obtain a copy of the License at
6
* http://www.ibphoenix.com/main.nfs?a=ibphoenix&page=ibp_idpl.
8
* Software distributed under the License is distributed AS IS,
9
* WITHOUT WARRANTY OF ANY KIND, either express or implied.
10
* See the License for the specific language governing rights
11
* and limitations under the License.
13
* The Original Code was created by Vlad Horsun
14
* for the Firebird Open Source RDBMS project.
16
* Copyright (c) 2006 Vlad Horsun <hvlad@users.sourceforge.net>
17
* and all contributors signed below.
19
* All Rights Reserved.
20
* Contributor(s): ______________________________________.
23
#ifndef DEBUG_INTERFACE_H
24
#define DEBUG_INTERFACE_H
27
#include "../jrd/jrd.h"
29
#include "../jrd/blb.h"
40
static const USHORT generate(const void*, const MapBlrToSrcItem& Item)
41
{ return Item.mbs_offset; }
44
typedef Firebird::SortedArray<
46
Firebird::EmptyStorage<MapBlrToSrcItem>,
48
MapBlrToSrcItem> MapBlrToSrc;
50
typedef GenericMap<Pair<Right<USHORT, MetaName> > > MapVarIndexToName;
54
ArgumentInfo(UCHAR aType, USHORT aIndex)
69
bool operator >(const ArgumentInfo& x) const
72
return index > x.index;
78
typedef GenericMap<Pair<Right<ArgumentInfo, MetaName> > > MapArgumentInfoToName;
82
DbgInfo(MemoryPool& p)
96
varIndexToName.clear();
97
argInfoToName.clear();
100
MapBlrToSrc blrToSrc; // mapping between blr offsets and source text position
101
MapVarIndexToName varIndexToName; // mapping between variable index and name
102
MapArgumentInfoToName argInfoToName; // mapping between argument info (type, index) and name
105
} // namespace Firebird
107
void DBG_parse_debug_info(Jrd::thread_db*, Jrd::bid*, Firebird::DbgInfo&);
108
void DBG_parse_debug_info(USHORT, const UCHAR*, Firebird::DbgInfo&);
110
#endif // DEBUG_INTERFACE_H