ReactOS 0.4.16-dev-320-g3bd9ddc
dbghelp_private.h
Go to the documentation of this file.
1/*
2 * File dbghelp_private.h - dbghelp internal definitions
3 *
4 * Copyright (C) 1995, Alexandre Julliard
5 * Copyright (C) 1996, Eric Youngdale.
6 * Copyright (C) 1999-2000, Ulrich Weigand.
7 * Copyright (C) 2004-2007, Eric Pouech.
8 *
9 * This library is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU Lesser General Public
11 * License as published by the Free Software Foundation; either
12 * version 2.1 of the License, or (at your option) any later version.
13 *
14 * This library is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17 * Lesser General Public License for more details.
18 *
19 * You should have received a copy of the GNU Lesser General Public
20 * License along with this library; if not, write to the Free Software
21 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
22 */
23
24#pragma once
25
26#include <stdarg.h>
27
28#ifndef DBGHELP_STATIC_LIB
29
30#include "windef.h"
31#include "winbase.h"
32#include "winver.h"
33#include "dbghelp.h"
34#include "objbase.h"
35#include "oaidl.h"
36#include "winnls.h"
37#include "wine/list.h"
38#include "wine/rbtree.h"
39
40#include "cvconst.h"
41
42#else /* DBGHELP_STATIC_LIB */
43
44#include <string.h>
45#include "compat.h"
46#include <wine/list.h>
47#include <wine/rbtree.h>
48#endif /* DBGHELP_STATIC_LIB */
49
50/* #define USE_STATS */
51
52struct pool /* poor's man */
53{
56 size_t arena_size;
57};
58
59void pool_init(struct pool* a, size_t arena_size) DECLSPEC_HIDDEN;
61void* pool_alloc(struct pool* a, size_t len) DECLSPEC_HIDDEN;
62char* pool_strdup(struct pool* a, const char* str) DECLSPEC_HIDDEN;
63
64struct vector
65{
66 void** buckets;
67 unsigned elt_size;
68 unsigned shift;
69 unsigned num_elts;
70 unsigned num_buckets;
72};
73
74void vector_init(struct vector* v, unsigned elt_sz, unsigned bucket_sz) DECLSPEC_HIDDEN;
75unsigned vector_length(const struct vector* v) DECLSPEC_HIDDEN;
76void* vector_at(const struct vector* v, unsigned pos) DECLSPEC_HIDDEN;
77void* vector_add(struct vector* v, struct pool* pool) DECLSPEC_HIDDEN;
78
80{
83};
84
85void sparse_array_init(struct sparse_array* sa, unsigned elt_sz, unsigned bucket_sz) DECLSPEC_HIDDEN;
89
91{
92 const char* name;
94};
95
97{
100};
101
102struct hash_table
103{
104 unsigned num_elts;
105 unsigned num_buckets;
107 struct pool* pool;
108};
109
110void hash_table_init(struct pool* pool, struct hash_table* ht,
111 unsigned num_buckets) DECLSPEC_HIDDEN;
114
116{
117 const struct hash_table* ht;
119 int index;
120 int last;
121};
122
123void hash_table_iter_init(const struct hash_table* ht,
124 struct hash_table_iter* hti, const char* name) DECLSPEC_HIDDEN;
126
127
128extern unsigned dbghelp_options DECLSPEC_HIDDEN;
130#ifndef DBGHELP_STATIC_LIB
132#endif
133
134enum location_kind {loc_error, /* reg is the error code */
135 loc_unavailable, /* location is not available */
136 loc_absolute, /* offset is the location */
137 loc_register, /* reg is the location */
138 loc_regrel, /* [reg+offset] is the location */
139 loc_tlsrel, /* offset is the address of the TLS index */
140 loc_user, /* value is debug information dependent,
141 reg & offset can be used ad libidem */
142};
143
144enum location_error {loc_err_internal = -1, /* internal while computing */
145 loc_err_too_complex = -2, /* couldn't compute location (even at runtime) */
146 loc_err_out_of_scope = -3, /* variable isn't available at current address */
147 loc_err_cant_read = -4, /* couldn't read memory at given address */
148 loc_err_no_location = -5, /* likely optimized away (by compiler) */
149};
150
152{
153 unsigned kind : 8,
156};
157
158struct symt
159{
161};
162
164{
165 struct symt symt;
166 struct hash_table_elt hash_elt; /* if global symbol or type */
167};
168
169/* lexical tree */
171{
172 struct symt symt;
175 struct symt* container; /* block, or func */
176 struct vector vchildren; /* sub-blocks & local variables */
177};
178
180{
181 struct symt symt;
183 unsigned source;
184 struct vector vchildren; /* global variables & functions */
185};
186
188{
189 struct symt symt;
190 struct hash_table_elt hash_elt; /* if global symbol */
193 struct symt* type;
194 union /* depends on kind */
195 {
196 /* DataIs{Global, FileStatic}:
197 * with loc.kind
198 * loc_absolute loc.offset is address
199 * loc_tlsrel loc.offset is TLS index address
200 * DataIs{Local,Param}:
201 * with loc.kind
202 * loc_absolute not supported
203 * loc_register location is in register loc.reg
204 * loc_regrel location is at address loc.reg + loc.offset
205 * >= loc_user ask debug info provider for resolution
206 */
207 struct location var;
208 /* DataIs{Member} (all values are in bits, not bytes) */
209 struct
210 {
214 /* DataIsConstant */
216 } u;
217};
218
220{
221 struct symt symt;
222 struct hash_table_elt hash_elt; /* if global symbol */
224 struct symt* container; /* compiland */
225 struct symt* type; /* points to function_signature */
228 struct vector vchildren; /* locals, params, blocks, start/end, labels */
229};
230
232{
233 struct symt symt; /* either SymTagFunctionDebugStart, SymTagFunctionDebugEnd, SymTagLabel */
234 struct hash_table_elt hash_elt; /* if label (and in compiland's hash table if global) */
235 struct symt* parent; /* symt_function or symt_compiland */
236 struct location loc;
237};
238
240{
241 struct symt symt;
243 struct symt* container; /* compiland */
247};
248
250{
251 struct symt symt;
253 struct symt* container; /* compiland */
256 THUNK_ORDINAL ordinal; /* FIXME: doesn't seem to be accessible */
257};
258
259/* class tree */
261{
262 struct symt symt;
263 int start;
264 int end; /* end index if > 0, or -array_len (in bytes) if < 0 */
267};
268
270{
271 struct symt symt;
275};
276
278{
279 struct symt symt;
281 const char* name;
283};
284
286{
287 struct symt symt;
288 struct symt* rettype;
291};
292
294{
295 struct symt symt;
296 struct symt* arg_type;
298};
299
301{
302 struct symt symt;
303 struct symt* pointsto;
305};
306
308{
309 struct symt symt;
311 struct symt* type;
312};
313
315{
316 struct symt symt;
319 int size;
321};
322
324{
325 DMT_UNKNOWN, /* for lookup, not actually used for a module */
326 DMT_ELF, /* a real ELF shared module */
327 DMT_PE, /* a native or builtin PE module */
328 DMT_MACHO, /* a real Mach-O shared module */
329 DMT_PDB, /* .PDB file */
330 DMT_DBG, /* .DBG file */
331};
332
333struct process;
334struct module;
335
336/* a module can be made of several debug information formats, so we have to
337 * support them all
338 */
340{
348
350{
351 struct module* module;
352 void (*remove)(struct process* pcs, struct module_format* modfmt);
353 void (*loc_compute)(struct process* pcs,
354 const struct module_format* modfmt,
355 const struct symt_function* func,
356 struct location* loc);
357 union
358 {
364 } u;
365};
366
367#ifdef __REACTOS__
368struct symt_idx_to_ptr
369{
370 struct hash_table_elt hash_elt;
371 DWORD idx;
372 const struct symt *sym;
373};
374#endif
375
376struct module
377{
380 WCHAR modulename[64]; /* used for enumeration */
381 struct module* next;
382 enum module_type type : 16;
383 unsigned short is_virtual : 1;
386
387 /* specific information for debug types */
389
390 /* memory allocation pool */
391 struct pool pool;
392
393 /* symbols & symbol tables */
394 struct vector vsymt;
396 unsigned num_sorttab; /* number of symbols with addresses */
397 unsigned num_symbols;
398 unsigned sorttab_size;
401#ifdef __x86_64__
402 struct hash_table ht_symaddr;
403#endif
404
405 /* types */
408
409 /* source files */
410 unsigned sources_used;
412 char* sources;
414};
415
416typedef BOOL (*enum_modules_cb)(const WCHAR*, ULONG_PTR addr, void* user);
417
419{
421 struct module* (*load_module)(struct process* process, const WCHAR* name, ULONG_PTR addr);
425};
426
428{
429 struct process* next;
431 const struct loader_ops* loader;
434
439
442
444
445 unsigned buffer_size;
446 void* buffer;
447
449};
450
451static inline BOOL read_process_memory(const struct process *process, UINT64 addr, void *buf, size_t size)
452{
454}
455
457{
462 union
463 {
464 ULONG_PTR pc_offset; /* if is_source_file isn't set */
465 unsigned source_file; /* if is_source_file is set */
466 } u;
467};
468
470{
471 struct process* pcs;
472 struct module* requested; /* in: to module_get_debug() */
473 struct module* effective; /* out: module with debug info */
474};
475
477
479{
480 const char* filename;
485};
486
488{
492 struct cpu * cpu;
493 union
494 {
495 struct
496 {
502 struct
503 {
509 } u;
510};
511
513{
517};
518
520{
523};
524
526{
527 unsigned is_elf;
533};
534
536{
540};
541
543{
544 /* process & thread information */
547 unsigned flags_out;
548 /* thread information */
550 unsigned num_threads;
551 /* module information */
553 unsigned num_modules;
555 /* exception information */
556 /* output information */
561 unsigned num_mem;
562 unsigned alloc_mem;
564 unsigned num_mem64;
565 unsigned alloc_mem64;
566 /* callback information */
568};
569
570union ctx
571{
574};
575
577struct cpu
578{
582
583 /* address manipulation */
585 enum cpu_addr, ADDRESS64* addr);
586
587 /* stack manipulation */
589 union ctx *ctx);
590
591 /* module manipulation */
592 void* (*find_runtime_function)(struct module*, DWORD64 addr);
593
594 /* dwarf dedicated information */
595 unsigned (*map_dwarf_register)(unsigned regno, const struct module* module, BOOL eh_frame);
596
597 /* context related manipulation */
598 void * (*fetch_context_reg)(union ctx *ctx, unsigned regno, unsigned *size);
599 const char* (*fetch_regname)(unsigned regno);
600
601 /* minidump per CPU extension */
602 BOOL (*fetch_minidump_thread)(struct dump_context* dc, unsigned index, unsigned flags, const CONTEXT* ctx);
603 BOOL (*fetch_minidump_module)(struct dump_context* dc, unsigned index, unsigned flags);
604};
605
607
608/* Abbreviated 32-bit PEB */
609typedef struct _PEB32
610{
628
629/* dbghelp.c */
632extern BOOL pcs_callback(const struct process* pcs, ULONG action, void* data) DECLSPEC_HIDDEN;
633extern void* fetch_buffer(struct process* pcs, unsigned size) DECLSPEC_HIDDEN;
634extern const char* wine_dbgstr_addr(const ADDRESS64* addr) DECLSPEC_HIDDEN;
635extern struct cpu* cpu_find(DWORD) DECLSPEC_HIDDEN;
636extern const WCHAR *process_getenv(const struct process *process, const WCHAR *name);
638
639#ifndef __REACTOS__
640/* elf_module.c */
642struct elf_thunk_area;
643extern int elf_is_in_thunk_area(ULONG_PTR addr, const struct elf_thunk_area* thunks) DECLSPEC_HIDDEN;
644
645/* macho_module.c */
647#else
648struct elf_thunk_area;
649#endif
650
651/* minidump.c */
653
654/* module.c */
655extern const WCHAR S_ElfW[] DECLSPEC_HIDDEN;
656extern const WCHAR S_WineLoaderW[] DECLSPEC_HIDDEN;
657extern const WCHAR S_SlashW[] DECLSPEC_HIDDEN;
658extern const struct loader_ops no_loader_ops DECLSPEC_HIDDEN;
659
660extern struct module*
661 module_find_by_addr(const struct process* pcs, DWORD64 addr,
663extern struct module*
664 module_find_by_nameW(const struct process* pcs,
665 const WCHAR* name) DECLSPEC_HIDDEN;
666extern struct module*
667 module_find_by_nameA(const struct process* pcs,
668 const char* name) DECLSPEC_HIDDEN;
669extern struct module*
670 module_is_already_loaded(const struct process* pcs,
671 const WCHAR* imgname) DECLSPEC_HIDDEN;
673extern struct module*
674 module_new(struct process* pcs, const WCHAR* name,
675 enum module_type type, BOOL virtual,
678extern struct module*
679 module_get_containee(const struct process* pcs,
680 const struct module* inner) DECLSPEC_HIDDEN;
682extern BOOL module_remove(struct process* pcs,
684extern void module_set_module(struct module* module, const WCHAR* name) DECLSPEC_HIDDEN;
685#ifndef __REACTOS__
687#endif
688
689/* msc.c */
690extern BOOL pe_load_debug_directory(const struct process* pcs,
691 struct module* module,
692 const BYTE* mapping,
693 const IMAGE_SECTION_HEADER* sectp, DWORD nsect,
694 const IMAGE_DEBUG_DIRECTORY* dbg, int nDbg) DECLSPEC_HIDDEN;
695extern BOOL pdb_fetch_file_info(const struct pdb_lookup* pdb_lookup, unsigned* matched) DECLSPEC_HIDDEN;
697 const char* name;
699};
701 union ctx *context, struct pdb_cmd_pair *cpair) DECLSPEC_HIDDEN;
702
703/* path.c */
704extern BOOL path_find_symbol_file(const struct process* pcs, const struct module* module,
705 PCSTR full_path, enum module_type type, const GUID* guid, DWORD dw1, DWORD dw2,
706 WCHAR *buffer, BOOL* is_unmatched) DECLSPEC_HIDDEN;
708extern BOOL search_dll_path(const struct process* process, const WCHAR *name,
709 BOOL (*match)(void*, HANDLE, const WCHAR*), void *param) DECLSPEC_HIDDEN;
710extern BOOL search_unix_path(const WCHAR *name, const WCHAR *path, BOOL (*match)(void*, HANDLE, const WCHAR*), void *param) DECLSPEC_HIDDEN;
711extern const WCHAR* file_name(const WCHAR* str) DECLSPEC_HIDDEN;
712extern const char* file_nameA(const char* str) DECLSPEC_HIDDEN;
713
714/* pe_module.c */
716extern struct module*
717 pe_load_native_module(struct process* pcs, const WCHAR* name,
719extern struct module*
720 pe_load_builtin_module(struct process* pcs, const WCHAR* name,
722extern BOOL pe_load_debug_info(const struct process* pcs,
724extern const char* pe_map_directory(struct module* module, int dirno, DWORD* size) DECLSPEC_HIDDEN;
725
726/* source.c */
727extern unsigned source_new(struct module* module, const char* basedir, const char* source) DECLSPEC_HIDDEN;
728extern const char* source_get(const struct module* module, unsigned idx) DECLSPEC_HIDDEN;
729extern int source_rb_compare(const void *key, const struct wine_rb_entry *entry) DECLSPEC_HIDDEN;
730
731/* stabs.c */
732typedef void (*stabs_def_cb)(struct module* module, ULONG_PTR load_offset,
733 const char* name, ULONG_PTR offset,
734 BOOL is_public, BOOL is_global, unsigned char other,
735 struct symt_compiland* compiland, void* user);
736extern BOOL stabs_parse(struct module* module, ULONG_PTR load_offset,
737 const char* stabs, size_t nstab, size_t stabsize,
738 const char* strs, int strtablen,
740
741/* dwarf.c */
742struct image_file_map;
743extern BOOL dwarf2_parse(struct module* module, ULONG_PTR load_offset,
744 const struct elf_thunk_area* thunks,
745 struct image_file_map* fmap) DECLSPEC_HIDDEN;
747 union ctx *ctx, DWORD64 *cfa) DECLSPEC_HIDDEN;
748
749/* rsym.c */
750extern BOOL rsym_parse(struct module* module, unsigned long load_offset,
751 const void* rsym, int rsymlen) DECLSPEC_HIDDEN;
752
753
754
755/* stack.c */
756#ifndef DBGHELP_STATIC_LIB
757extern BOOL sw_read_mem(struct cpu_stack_walk* csw, DWORD64 addr, void* ptr, DWORD sz) DECLSPEC_HIDDEN;
758#endif
762
763/* symbol.c */
764extern const char* symt_get_name(const struct symt* sym) DECLSPEC_HIDDEN;
765extern WCHAR* symt_get_nameW(const struct symt* sym) DECLSPEC_HIDDEN;
767extern int __cdecl symt_cmp_addr(const void* p1, const void* p2) DECLSPEC_HIDDEN;
768extern void copy_symbolW(SYMBOL_INFOW* siw, const SYMBOL_INFO* si) DECLSPEC_HIDDEN;
769extern struct symt_ht*
771extern struct symt_compiland*
773 unsigned src_idx) DECLSPEC_HIDDEN;
774extern struct symt_public*
776 struct symt_compiland* parent,
777 const char* typename,
780 unsigned size) DECLSPEC_HIDDEN;
781extern struct symt_data*
783 struct symt_compiland* parent,
784 const char* name, unsigned is_static,
785 struct location loc, ULONG_PTR size,
786 struct symt* type) DECLSPEC_HIDDEN;
787extern struct symt_function*
789 struct symt_compiland* parent,
790 const char* name,
792 struct symt* type) DECLSPEC_HIDDEN;
794 const struct symt_function* func) DECLSPEC_HIDDEN;
795extern void symt_add_func_line(struct module* module,
796 struct symt_function* func,
797 unsigned source_idx, int line_num,
799extern struct symt_data*
801 struct symt_function* func,
802 enum DataKind dt, const struct location* loc,
803 struct symt_block* block,
804 struct symt* type, const char* name) DECLSPEC_HIDDEN;
805extern struct symt_block*
807 struct symt_function* func,
808 struct symt_block* block,
809 unsigned pc, unsigned len) DECLSPEC_HIDDEN;
810extern struct symt_block*
812 const struct symt_function* func,
813 struct symt_block* block, unsigned pc) DECLSPEC_HIDDEN;
814extern struct symt_hierarchy_point*
816 struct symt_function* func,
817 enum SymTagEnum point,
818 const struct location* loc,
819 const char* name) DECLSPEC_HIDDEN;
820extern BOOL symt_fill_func_line_info(const struct module* module,
821 const struct symt_function* func,
824extern struct symt_thunk*
826 struct symt_compiland* parent,
827 const char* name, THUNK_ORDINAL ord,
829extern struct symt_data*
831 struct symt_compiland* parent,
832 const char* name, struct symt* type,
833 const VARIANT* v) DECLSPEC_HIDDEN;
834extern struct symt_hierarchy_point*
836 struct symt_compiland* compiland,
838extern struct symt* symt_index2ptr(struct module* module, DWORD id) DECLSPEC_HIDDEN;
839extern DWORD symt_ptr2index(struct module* module, const struct symt* sym) DECLSPEC_HIDDEN;
840
841/* type.c */
843extern BOOL symt_get_info(struct module* module, const struct symt* type,
845extern struct symt_basic*
847 const char* typename, unsigned size) DECLSPEC_HIDDEN;
848extern struct symt_udt*
849 symt_new_udt(struct module* module, const char* typename,
850 unsigned size, enum UdtKind kind) DECLSPEC_HIDDEN;
851extern BOOL symt_set_udt_size(struct module* module,
852 struct symt_udt* type, unsigned size) DECLSPEC_HIDDEN;
854 struct symt_udt* udt_type,
855 const char* name,
856 struct symt* elt_type, unsigned offset,
857 unsigned size) DECLSPEC_HIDDEN;
858extern struct symt_enum*
859 symt_new_enum(struct module* module, const char* typename,
860 struct symt* basetype) DECLSPEC_HIDDEN;
862 struct symt_enum* enum_type,
863 const char* name, int value) DECLSPEC_HIDDEN;
864extern struct symt_array*
865 symt_new_array(struct module* module, int min, int max,
866 struct symt* base, struct symt* index) DECLSPEC_HIDDEN;
867extern struct symt_function_signature*
869 struct symt* ret_type,
872 struct symt_function_signature* sig,
873 struct symt* param) DECLSPEC_HIDDEN;
874extern struct symt_pointer*
876 struct symt* ref_type,
878extern struct symt_typedef*
879 symt_new_typedef(struct module* module, struct symt* ref,
880 const char* name) DECLSPEC_HIDDEN;
unsigned char BOOLEAN
unsigned long long UINT64
#define __cdecl
Definition: accygwin.h:79
static struct sockaddr_in sa
Definition: adnsresfilter.c:69
#define index(s, c)
Definition: various.h:29
void user(int argc, const char *argv[])
Definition: cmds.c:1350
Definition: list.h:37
struct symt_hierarchy_point * symt_add_function_point(struct module *module, struct symt_function *func, enum SymTagEnum point, const struct location *loc, const char *name) DECLSPEC_HIDDEN
Definition: symbol.c:452
struct symt_thunk * symt_new_thunk(struct module *module, struct symt_compiland *parent, const char *name, THUNK_ORDINAL ord, ULONG_PTR addr, ULONG_PTR size) DECLSPEC_HIDDEN
Definition: symbol.c:496
BOOL pe_load_debug_directory(const struct process *pcs, struct module *module, const BYTE *mapping, const IMAGE_SECTION_HEADER *sectp, DWORD nsect, const IMAGE_DEBUG_DIRECTORY *dbg, int nDbg) DECLSPEC_HIDDEN
Definition: msc.c:3391
struct symt_function * symt_new_function(struct module *module, struct symt_compiland *parent, const char *name, ULONG_PTR addr, ULONG_PTR size, struct symt *type) DECLSPEC_HIDDEN
Definition: symbol.c:293
BOOL symt_get_info(struct module *module, const struct symt *type, IMAGEHLP_SYMBOL_TYPE_INFO req, void *pInfo) DECLSPEC_HIDDEN
Definition: type.c:536
cpu_addr
@ cpu_addr_frame
@ cpu_addr_pc
@ cpu_addr_stack
WCHAR * symt_get_nameW(const struct symt *sym) DECLSPEC_HIDDEN
Definition: type.c:106
struct module * module_find_by_nameW(const struct process *pcs, const WCHAR *name) DECLSPEC_HIDDEN
Definition: module.c:279
void hash_table_init(struct pool *pool, struct hash_table *ht, unsigned num_buckets) DECLSPEC_HIDDEN
Definition: storage.c:334
DWORD symt_ptr2index(struct module *module, const struct symt *sym) DECLSPEC_HIDDEN
Definition: symbol.c:68
void vector_init(struct vector *v, unsigned elt_sz, unsigned bucket_sz) DECLSPEC_HIDDEN
Definition: storage.c:133
struct symt_data * symt_new_constant(struct module *module, struct symt_compiland *parent, const char *name, struct symt *type, const VARIANT *v) DECLSPEC_HIDDEN
Definition: symbol.c:525
void * sw_table_access(struct cpu_stack_walk *csw, DWORD64 addr) DECLSPEC_HIDDEN
Definition: stack.c:119
struct symt_data * symt_add_func_local(struct module *module, struct symt_function *func, enum DataKind dt, const struct location *loc, struct symt_block *block, struct symt *type, const char *name) DECLSPEC_HIDDEN
Definition: symbol.c:378
BOOL search_dll_path(const struct process *process, const WCHAR *name, BOOL(*match)(void *, HANDLE, const WCHAR *), void *param) DECLSPEC_HIDDEN
Definition: path.c:697
const char * file_nameA(const char *str) DECLSPEC_HIDDEN
Definition: path.c:37
BOOL dwarf2_parse(struct module *module, ULONG_PTR load_offset, const struct elf_thunk_area *thunks, struct image_file_map *fmap) DECLSPEC_HIDDEN
Definition: dwarf.c:3509
BOOL pdb_virtual_unwind(struct cpu_stack_walk *csw, DWORD_PTR ip, union ctx *context, struct pdb_cmd_pair *cpair) DECLSPEC_HIDDEN
Definition: msc.c:3200
void * vector_add(struct vector *v, struct pool *pool) DECLSPEC_HIDDEN
Definition: storage.c:171
struct process * process_find_by_handle(HANDLE hProcess) DECLSPEC_HIDDEN
Definition: dbghelp.c:99
struct module * pe_load_builtin_module(struct process *pcs, const WCHAR *name, DWORD64 base, DWORD64 size) DECLSPEC_HIDDEN
Definition: pe_module.c:896
void sparse_array_init(struct sparse_array *sa, unsigned elt_sz, unsigned bucket_sz) DECLSPEC_HIDDEN
Definition: storage.c:213
void * pool_alloc(struct pool *a, size_t len) DECLSPEC_HIDDEN
Definition: storage.c:89
const char * pe_map_directory(struct module *module, int dirno, DWORD *size) DECLSPEC_HIDDEN
Definition: pe_module.c:331
BOOL stabs_parse(struct module *module, ULONG_PTR load_offset, const char *stabs, size_t nstab, size_t stabsize, const char *strs, int strtablen, stabs_def_cb callback, void *user) DECLSPEC_HIDDEN
Definition: stabs.c:1241
BOOL rsym_parse(struct module *module, unsigned long load_offset, const void *rsym, int rsymlen) DECLSPEC_HIDDEN
Definition: rsym.c:79
WCHAR * get_dos_file_name(const WCHAR *filename) DECLSPEC_HIDDEN
Definition: path.c:671
static BOOL read_process_memory(const struct process *process, UINT64 addr, void *buf, size_t size)
struct symt_pointer * symt_new_pointer(struct module *module, struct symt *ref_type, ULONG_PTR size) DECLSPEC_HIDDEN
Definition: type.c:414
struct module * module_get_containee(const struct process *pcs, const struct module *inner) DECLSPEC_HIDDEN
Definition: module.c:349
const char * symt_get_name(const struct symt *sym) DECLSPEC_HIDDEN
Definition: type.c:81
BOOL symt_add_enum_element(struct module *module, struct symt_enum *enum_type, const char *name, int value) DECLSPEC_HIDDEN
Definition: type.c:319
struct module * module_find_by_nameA(const struct process *pcs, const char *name) DECLSPEC_HIDDEN
Definition: module.c:291
int source_rb_compare(const void *key, const struct wine_rb_entry *entry) DECLSPEC_HIDDEN
Definition: source.c:40
void pool_init(struct pool *a, size_t arena_size) DECLSPEC_HIDDEN
Definition: storage.c:43
struct symt_udt * symt_new_udt(struct module *module, const char *typename, unsigned size, enum UdtKind kind) DECLSPEC_HIDDEN
Definition: type.c:219
void pool_destroy(struct pool *a) DECLSPEC_HIDDEN
Definition: storage.c:50
BOOL pcs_callback(const struct process *pcs, ULONG action, void *data) DECLSPEC_HIDDEN
Definition: dbghelp.c:731
int __cdecl symt_cmp_addr(const void *p1, const void *p2) DECLSPEC_HIDDEN
Definition: symbol.c:57
unsigned vector_length(const struct vector *v) DECLSPEC_HIDDEN
Definition: storage.c:157
unsigned source_new(struct module *module, const char *basedir, const char *source) DECLSPEC_HIDDEN
Definition: source.c:66
struct symt_typedef * symt_new_typedef(struct module *module, struct symt *ref, const char *name) DECLSPEC_HIDDEN
Definition: type.c:428
BOOL path_find_symbol_file(const struct process *pcs, const struct module *module, PCSTR full_path, enum module_type type, const GUID *guid, DWORD dw1, DWORD dw2, WCHAR *buffer, BOOL *is_unmatched) DECLSPEC_HIDDEN
Definition: path.c:596
struct symt_public * symt_new_public(struct module *module, struct symt_compiland *parent, const char *typename, BOOL is_function, ULONG_PTR address, unsigned size) DECLSPEC_HIDDEN
Definition: symbol.c:224
int elf_is_in_thunk_area(ULONG_PTR addr, const struct elf_thunk_area *thunks) DECLSPEC_HIDDEN
Definition: elf_module.c:602
format_info
@ DFI_ELF
@ DFI_PE
@ DFI_DWARF
@ DFI_LAST
@ DFI_MACHO
@ DFI_PDB
unsigned sparse_array_length(const struct sparse_array *sa) DECLSPEC_HIDDEN
Definition: storage.c:314
void hash_table_iter_init(const struct hash_table *ht, struct hash_table_iter *hti, const char *name) DECLSPEC_HIDDEN
Definition: storage.c:405
struct symt_function_signature * symt_new_function_signature(struct module *module, struct symt *ret_type, enum CV_call_e call_conv) DECLSPEC_HIDDEN
Definition: type.c:377
const char * wine_dbgstr_addr(const ADDRESS64 *addr) DECLSPEC_HIDDEN
Definition: dbghelp.c:142
struct symt_block * symt_close_func_block(struct module *module, const struct symt_function *func, struct symt_block *block, unsigned pc) DECLSPEC_HIDDEN
Definition: symbol.c:440
unsigned dbghelp_options DECLSPEC_HIDDEN
WCHAR * get_wine_loader_name(struct process *pcs) DECLSPEC_HIDDEN
Definition: module.c:150
BOOL dwarf2_virtual_unwind(struct cpu_stack_walk *csw, DWORD_PTR ip, union ctx *ctx, DWORD64 *cfa) DECLSPEC_HIDDEN
Definition: dwarf.c:3258
BOOL(* enum_modules_cb)(const WCHAR *, ULONG_PTR addr, void *user)
struct symt_data * symt_new_global_variable(struct module *module, struct symt_compiland *parent, const char *name, unsigned is_static, struct location loc, ULONG_PTR size, struct symt *type) DECLSPEC_HIDDEN
Definition: symbol.c:256
void * sparse_array_add(struct sparse_array *sa, ULONG_PTR key, struct pool *pool) DECLSPEC_HIDDEN
Definition: storage.c:281
BOOL validate_addr64(DWORD64 addr) DECLSPEC_HIDDEN
Definition: dbghelp.c:112
DWORD64 sw_module_base(struct cpu_stack_walk *csw, DWORD64 addr) DECLSPEC_HIDDEN
Definition: stack.c:127
BOOL pdb_fetch_file_info(const struct pdb_lookup *pdb_lookup, unsigned *matched) DECLSPEC_HIDDEN
Definition: msc.c:2913
void * fetch_buffer(struct process *pcs, unsigned size) DECLSPEC_HIDDEN
Definition: dbghelp.c:128
struct symt_enum * symt_new_enum(struct module *module, const char *typename, struct symt *basetype) DECLSPEC_HIDDEN
Definition: type.c:304
BOOL elf_read_wine_loader_dbg_info(struct process *pcs, ULONG_PTR addr) DECLSPEC_HIDDEN
Definition: elf_module.c:1753
struct module * pe_load_native_module(struct process *pcs, const WCHAR *name, HANDLE hFile, DWORD64 base, DWORD size) DECLSPEC_HIDDEN
Definition: pe_module.c:803
struct module * module_is_already_loaded(const struct process *pcs, const WCHAR *imgname) DECLSPEC_HIDDEN
Definition: module.c:303
BOOL symt_set_udt_size(struct module *module, struct symt_udt *type, unsigned size) DECLSPEC_HIDDEN
Definition: type.c:242
void * sparse_array_find(const struct sparse_array *sa, ULONG_PTR idx) DECLSPEC_HIDDEN
Definition: storage.c:271
void hash_table_destroy(struct hash_table *ht) DECLSPEC_HIDDEN
Definition: storage.c:342
struct symt_block * symt_open_func_block(struct module *module, struct symt_function *func, struct symt_block *block, unsigned pc, unsigned len) DECLSPEC_HIDDEN
Definition: symbol.c:413
void module_reset_debug_info(struct module *module) DECLSPEC_HIDDEN
Definition: module.c:1328
BOOL macho_read_wine_loader_dbg_info(struct process *pcs, ULONG_PTR addr) DECLSPEC_HIDDEN
struct symt_array * symt_new_array(struct module *module, int min, int max, struct symt *base, struct symt *index) DECLSPEC_HIDDEN
Definition: type.c:345
void minidump_add_memory_block(struct dump_context *dc, ULONG64 base, ULONG size, ULONG rva) DECLSPEC_HIDDEN
Definition: minidump.c:355
struct _PEB32 PEB32
BOOL sw_read_mem(struct cpu_stack_walk *csw, DWORD64 addr, void *ptr, DWORD sz) DECLSPEC_HIDDEN
Definition: stack.c:95
void * hash_table_iter_up(struct hash_table_iter *hti) DECLSPEC_HIDDEN
Definition: storage.c:422
BOOL pe_load_nt_header(HANDLE hProc, DWORD64 base, IMAGE_NT_HEADERS *nth) DECLSPEC_HIDDEN
Definition: pe_module.c:881
BOOL symt_get_address(const struct symt *type, ULONG64 *addr) DECLSPEC_HIDDEN
Definition: type.c:119
struct symt_compiland * symt_new_compiland(struct module *module, ULONG_PTR address, unsigned src_idx) DECLSPEC_HIDDEN
Definition: symbol.c:207
struct module * module_find_by_addr(const struct process *pcs, DWORD64 addr, enum module_type type) DECLSPEC_HIDDEN
Definition: module.c:420
BOOL pe_load_debug_info(const struct process *pcs, struct module *module) DECLSPEC_HIDDEN
Definition: pe_module.c:751
void symt_init_basic(struct module *module) DECLSPEC_HIDDEN
BOOL symt_fill_func_line_info(const struct module *module, const struct symt_function *func, DWORD64 addr, IMAGEHLP_LINE64 *line) DECLSPEC_HIDDEN
Definition: symbol.c:1480
void * vector_at(const struct vector *v, unsigned pos) DECLSPEC_HIDDEN
Definition: storage.c:162
BOOL symt_add_function_signature_parameter(struct module *module, struct symt_function_signature *sig, struct symt *param) DECLSPEC_HIDDEN
Definition: type.c:394
const char * source_get(const struct module *module, unsigned idx) DECLSPEC_HIDDEN
Definition: source.c:130
DWORD64 sw_xlat_addr(struct cpu_stack_walk *csw, ADDRESS64 *addr) DECLSPEC_HIDDEN
Definition: stack.c:104
BOOL symt_add_udt_element(struct module *module, struct symt_udt *udt_type, const char *name, struct symt *elt_type, unsigned offset, unsigned size) DECLSPEC_HIDDEN
Definition: type.c:264
void(* stabs_def_cb)(struct module *module, ULONG_PTR load_offset, const char *name, ULONG_PTR offset, BOOL is_public, BOOL is_global, unsigned char other, struct symt_compiland *compiland, void *user)
location_kind
@ loc_unavailable
@ loc_regrel
@ loc_register
@ loc_user
@ loc_error
@ loc_absolute
@ loc_tlsrel
void copy_symbolW(SYMBOL_INFOW *siw, const SYMBOL_INFO *si) DECLSPEC_HIDDEN
Definition: symbol.c:1029
DWORD calc_crc32(HANDLE handle) DECLSPEC_HIDDEN
Definition: dbghelp.c:874
struct symt_basic * symt_new_basic(struct module *module, enum BasicType, const char *typename, unsigned size) DECLSPEC_HIDDEN
Definition: type.c:192
void symt_add_func_line(struct module *module, struct symt_function *func, unsigned source_idx, int line_num, ULONG_PTR offset) DECLSPEC_HIDDEN
Definition: symbol.c:326
BOOL search_unix_path(const WCHAR *name, const WCHAR *path, BOOL(*match)(void *, HANDLE, const WCHAR *), void *param) DECLSPEC_HIDDEN
Definition: path.c:782
BOOL module_get_debug(struct module_pair *) DECLSPEC_HIDDEN
Definition: module.c:374
BOOL module_remove(struct process *pcs, struct module *module) DECLSPEC_HIDDEN
Definition: module.c:889
pdb_kind
@ PDB_DS
@ PDB_JG
char * pool_strdup(struct pool *a, const char *str) DECLSPEC_HIDDEN
Definition: storage.c:126
void hash_table_add(struct hash_table *ht, struct hash_table_elt *elt) DECLSPEC_HIDDEN
Definition: storage.c:378
void module_set_module(struct module *module, const WCHAR *name) DECLSPEC_HIDDEN
Definition: module.c:142
struct module * module_new(struct process *pcs, const WCHAR *name, enum module_type type, BOOL virtual, DWORD64 addr, DWORD64 size, ULONG_PTR stamp, ULONG_PTR checksum) DECLSPEC_HIDDEN
Definition: module.c:198
struct symt * symt_index2ptr(struct module *module, DWORD id) DECLSPEC_HIDDEN
Definition: symbol.c:110
BOOL symt_normalize_function(struct module *module, const struct symt_function *func) DECLSPEC_HIDDEN
Definition: symbol.c:473
module_type
@ DMT_UNKNOWN
@ DMT_DBG
@ DMT_PE
@ DMT_MACHO
@ DMT_PDB
@ DMT_ELF
const WCHAR * process_getenv(const struct process *process, const WCHAR *name)
Definition: dbghelp.c:335
struct symt_hierarchy_point * symt_new_label(struct module *module, struct symt_compiland *compiland, const char *name, ULONG_PTR address) DECLSPEC_HIDDEN
Definition: symbol.c:554
location_error
@ loc_err_cant_read
@ loc_err_no_location
@ loc_err_too_complex
@ loc_err_internal
@ loc_err_out_of_scope
struct cpu * cpu_find(DWORD) DECLSPEC_HIDDEN
Definition: dbghelp.c:183
BOOL symt_get_func_line_next(const struct module *module, PIMAGEHLP_LINE64 line) DECLSPEC_HIDDEN
Definition: symbol.c:1734
struct symt_ht * symt_find_nearest(struct module *module, DWORD_PTR addr) DECLSPEC_HIDDEN
Definition: symbol.c:903
#define NULL
Definition: types.h:112
unsigned int idx
Definition: utils.c:41
static cab_ULONG checksum(const cab_UBYTE *data, cab_UWORD bytes, cab_ULONG csum)
Definition: fdi.c:353
BOOL(CALLBACK * PREAD_PROCESS_MEMORY_ROUTINE64)(HANDLE, DWORD64, PVOID, DWORD, PDWORD)
Definition: compat.h:1183
BOOL(CALLBACK * PREAD_PROCESS_MEMORY_ROUTINE)(HANDLE, DWORD, PVOID, DWORD, PDWORD)
Definition: compat.h:1228
#define ReadProcessMemory(a, b, c, d, e)
Definition: compat.h:758
enum _MINIDUMP_TYPE MINIDUMP_TYPE
BOOL(CALLBACK * PSYMBOL_REGISTERED_CALLBACK)(HANDLE, ULONG, PVOID, PVOID)
Definition: compat.h:1227
DWORD(CALLBACK * PGET_MODULE_BASE_ROUTINE)(HANDLE, DWORD)
Definition: compat.h:1231
PVOID(CALLBACK * PFUNCTION_TABLE_ACCESS_ROUTINE64)(HANDLE, DWORD64)
Definition: compat.h:1179
DWORD RVA
Definition: compat.h:1262
THUNK_ORDINAL
Definition: compat.h:2215
CV_call_e
Definition: compat.h:2224
SymTagEnum
Definition: compat.h:1580
DWORD(CALLBACK * PTRANSLATE_ADDRESS_ROUTINE)(HANDLE, HANDLE, LPADDRESS)
Definition: compat.h:1229
BOOL(CALLBACK * PSYMBOL_REGISTERED_CALLBACK64)(HANDLE, ULONG, ULONG64, ULONG64)
Definition: compat.h:1182
#define MAX_PATH
Definition: compat.h:34
DataKind
Definition: compat.h:1647
DWORD64(CALLBACK * PTRANSLATE_ADDRESS_ROUTINE64)(HANDLE, HANDLE, LPADDRESS64)
Definition: compat.h:1181
PVOID(CALLBACK * PFUNCTION_TABLE_ACCESS_ROUTINE)(HANDLE, DWORD)
Definition: compat.h:1230
enum _IMAGEHLP_SYMBOL_TYPE_INFO IMAGEHLP_SYMBOL_TYPE_INFO
BasicType
Definition: compat.h:1616
DWORD64(CALLBACK * PGET_MODULE_BASE_ROUTINE64)(HANDLE, DWORD64)
Definition: compat.h:1180
UdtKind
Definition: compat.h:1639
unsigned dbghelp_options
Definition: dbghelp.c:73
SYSTEM_INFO sysinfo
Definition: dbghelp.c:76
BOOL dbghelp_opt_native
Definition: dbghelp.c:74
struct cpu * dbghelp_current_cpu
Definition: dbghelp.c:169
const WCHAR S_ElfW[]
Definition: module.c:40
const struct loader_ops no_loader_ops
Definition: module.c:1409
const WCHAR S_WineLoaderW[]
Definition: module.c:42
const WCHAR S_SlashW[]
Definition: module.c:45
const WCHAR * action
Definition: action.c:7509
r parent
Definition: btrfs.c:3010
POINTL point
Definition: edittest.c:50
unsigned int BOOL
Definition: ntddk_ex.h:94
unsigned long DWORD
Definition: ntddk_ex.h:95
const GLdouble * v
Definition: gl.h:2040
GLuint GLuint GLsizei GLenum type
Definition: gl.h:1545
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
Definition: gl.h:1950
GLsizeiptr size
Definition: glext.h:5919
GLenum func
Definition: glext.h:6028
GLuint address
Definition: glext.h:9393
GLuint buffer
Definition: glext.h:5915
GLuint index
Definition: glext.h:6031
GLenum GLuint GLenum GLsizei const GLchar * buf
Definition: glext.h:7751
GLbitfield flags
Definition: glext.h:7161
GLenum const GLvoid * addr
Definition: glext.h:9621
GLenum GLenum GLenum GLenum mapping
Definition: glext.h:9031
GLfloat param
Definition: glext.h:5796
GLenum GLsizei len
Definition: glext.h:6722
GLboolean GLboolean GLboolean GLboolean a
Definition: glext.h:6204
GLintptr offset
Definition: glext.h:5920
static const struct newhuff ht[]
Definition: huffman.h:296
const char * filename
Definition: ioapi.h:137
uint32_t entry
Definition: isohybrid.c:63
_In_ BOOL _In_ HANDLE hProcess
Definition: mapping.h:71
static const WCHAR dc[]
const GUID * guid
int load_addr
Definition: mkisofs.c:104
unsigned __int64 ULONG64
Definition: imports.h:198
static PVOID ptr
Definition: dispmode.c:27
static IPrintDialogCallback callback
Definition: printdlg.c:326
static unsigned(__cdecl *hash_bstr)(bstr_t s)
static LPCWSTR file_name
Definition: protocol.c:147
#define min(a, b)
Definition: monoChain.cc:55
int other
Definition: msacm.c:1376
__int3264 LONG_PTR
Definition: mstsclib_h.h:276
unsigned __int3264 UINT_PTR
Definition: mstsclib_h.h:274
_In_ HANDLE hFile
Definition: mswsock.h:90
HANDLE hThread
Definition: wizard.c:28
#define BOOL
Definition: nt_native.h:43
const WCHAR * str
DWORD FastPebLock
DWORD FastPebLockRoutine
DWORD KernelCallbackTable
BOOLEAN InheritedAddressSpace
DWORD ProcessHeap
DWORD FastPebUnlockRoutine
BOOLEAN SpareBool
BOOLEAN ReadImageFileExecOptions
DWORD Mutant
DWORD ProcessParameters
DWORD LdrData
DWORD SubSystemData
BOOLEAN BeingDebugged
DWORD ImageBaseAddress
ULONG EnvironmentUpdateCount
Definition: http.c:7252
struct cpu_stack_walk::@374::@376 s64
PGET_MODULE_BASE_ROUTINE f_modl_bas
PTRANSLATE_ADDRESS_ROUTINE64 f_xlat_adr
PREAD_PROCESS_MEMORY_ROUTINE f_read_mem
union cpu_stack_walk::@374 u
PGET_MODULE_BASE_ROUTINE64 f_modl_bas
PREAD_PROCESS_MEMORY_ROUTINE64 f_read_mem
struct cpu * cpu
PFUNCTION_TABLE_ACCESS_ROUTINE64 f_tabl_acs
struct cpu_stack_walk::@374::@375 s32
PFUNCTION_TABLE_ACCESS_ROUTINE f_tabl_acs
PTRANSLATE_ADDRESS_ROUTINE f_xlat_adr
BOOL(* fetch_minidump_thread)(struct dump_context *dc, unsigned index, unsigned flags, const CONTEXT *ctx)
DWORD word_size
BOOL(* fetch_minidump_module)(struct dump_context *dc, unsigned index, unsigned flags)
DWORD frame_regno
unsigned(* map_dwarf_register)(unsigned regno, const struct module *module, BOOL eh_frame)
BOOL(* get_addr)(HANDLE hThread, const CONTEXT *ctx, enum cpu_addr, ADDRESS64 *addr)
BOOL(* stack_walk)(struct cpu_stack_walk *csw, STACKFRAME64 *frame, union ctx *ctx)
DWORD machine
struct dump_memory * mem
unsigned flags_out
struct dump_memory64 * mem64
unsigned num_modules
unsigned num_threads
MINIDUMP_TYPE type
unsigned alloc_mem64
unsigned num_mem
unsigned alloc_mem
struct dump_thread * threads
struct dump_module * modules
unsigned alloc_modules
unsigned num_mem64
struct process * process
MINIDUMP_CALLBACK_INFORMATION * cb
unsigned is_elf
struct hash_table_elt * first
struct hash_table_elt * last
struct hash_table_elt * next
const char * name
struct hash_table_elt * element
const struct hash_table * ht
struct pool * pool
struct hash_table_bucket * buckets
unsigned num_buckets
unsigned num_elts
Definition: dhcpd.h:62
Definition: copy.c:22
ULONG_PTR pc_offset
union line_info::@373 u
ULONG_PTR is_first
ULONG_PTR line_number
ULONG_PTR is_last
unsigned source_file
ULONG_PTR is_source_file
Definition: parser.c:49
BOOL(* fetch_file_info)(struct process *process, const WCHAR *name, ULONG_PTR load_addr, DWORD_PTR *base, DWORD *size, DWORD *checksum)
BOOL(* load_debug_info)(struct process *process, struct module *module)
BOOL(* enum_modules)(struct process *process, enum_modules_cb callback, void *user)
BOOL(* synchronize_module_list)(struct process *process)
ULONG_PTR offset
unsigned reg
unsigned kind
Definition: match.c:28
struct module * module
struct dwarf2_module_info_s * dwarf2_info
struct pe_module_info * pe_info
struct macho_module_info * macho_info
void(* loc_compute)(struct process *pcs, const struct module_format *modfmt, const struct symt_function *func, struct location *loc)
union module_format::@372 u
struct pdb_module_info * pdb_info
struct elf_module_info * elf_info
void(* remove)(struct process *pcs, struct module_format *modfmt)
struct process * pcs
struct module * effective
struct module * requested
unsigned num_sorttab
DWORD64 reloc_delta
unsigned num_symbols
WCHAR modulename[64]
unsigned short is_virtual
struct symt_ht ** addr_sorttab
struct wine_rb_tree sources_offsets_tree
IMAGEHLP_MODULEW64 module
int sortlist_valid
struct process * process
struct hash_table ht_types
unsigned sorttab_size
unsigned sources_used
char * sources
unsigned sources_alloc
struct vector vsymt
struct hash_table ht_symbols
struct module * next
enum module_type type
WCHAR * real_path
struct vector vtypes
Definition: name.c:39
const char * name
const char * filename
enum pdb_kind kind
struct list arena_list
size_t arena_size
struct list arena_full
const struct loader_ops * loader
WCHAR * environment
IMAGEHLP_STACK_FRAME ctx_frame
HANDLE handle
PSYMBOL_REGISTERED_CALLBACK64 reg_cb
struct module * lmodules
ULONG_PTR dbg_hdr_addr
void * buffer
BOOL reg_is_unicode
unsigned buffer_size
PSYMBOL_REGISTERED_CALLBACK reg_cb32
struct process * next
DWORD64 reg_user
WCHAR * search_path
Definition: send.c:48
struct vector elements
struct symt * base_type
struct symt * index_type
enum BasicType bt
struct hash_table_elt hash_elt
ULONG_PTR size
ULONG_PTR address
struct vector vchildren
ULONG_PTR size
struct symt * container
struct vector vchildren
union symt_data::@370 u
struct symt * type
ULONG_PTR length
struct symt * container
struct hash_table_elt hash_elt
VARIANT value
LONG_PTR offset
struct location var
enum DataKind kind
struct symt_data::@370::@371 member
const char * name
struct symt * base_type
struct vector vchildren
struct vector vlines
struct vector vchildren
struct hash_table_elt hash_elt
struct symt * type
struct symt * container
ULONG_PTR address
struct location loc
struct hash_table_elt hash_elt
struct hash_table_elt hash_elt
ULONG_PTR size
struct symt * pointsto
struct hash_table_elt hash_elt
struct symt * container
ULONG_PTR address
ULONG_PTR size
struct symt * container
ULONG_PTR address
ULONG_PTR size
struct hash_table_elt hash_elt
THUNK_ORDINAL ordinal
struct hash_table_elt hash_elt
struct symt * type
struct vector vchildren
enum UdtKind kind
struct hash_table_elt hash_elt
enum SymTagEnum tag
unsigned num_elts
unsigned elt_size
unsigned buckets_allocated
void ** buckets
unsigned shift
unsigned num_buckets
Definition: rbtree.h:36
#define max(a, b)
Definition: svc.c:63
uint32_t DWORD_PTR
Definition: typedefs.h:65
uint64_t DWORD64
Definition: typedefs.h:67
const char * PCSTR
Definition: typedefs.h:52
uint32_t ULONG_PTR
Definition: typedefs.h:65
uint32_t ULONG
Definition: typedefs.h:59
CONTEXT ctx
WOW64_CONTEXT x86
Definition: pdh_main.c:94
_Reserved_ PVOID Reserved
Definition: winddi.h:3974
static unsigned int block
Definition: xmlmemory.c:101
__wchar_t WCHAR
Definition: xmlstorage.h:180
unsigned char BYTE
Definition: xxhash.c:193