ReactOS  0.4.15-dev-994-ga9f6032
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 
52 struct pool /* poor's man */
53 {
54  struct list arena_list;
55  struct list arena_full;
56  size_t arena_size;
57 };
58 
59 void pool_init(struct pool* a, size_t arena_size) DECLSPEC_HIDDEN;
60 void pool_destroy(struct pool* a) DECLSPEC_HIDDEN;
61 void* pool_alloc(struct pool* a, size_t len) DECLSPEC_HIDDEN;
62 char* pool_strdup(struct pool* a, const char* str) DECLSPEC_HIDDEN;
63 
64 struct vector
65 {
66  void** buckets;
67  unsigned elt_size;
68  unsigned shift;
69  unsigned num_elts;
70  unsigned num_buckets;
72 };
73 
74 void vector_init(struct vector* v, unsigned elt_sz, unsigned bucket_sz) DECLSPEC_HIDDEN;
75 unsigned vector_length(const struct vector* v) DECLSPEC_HIDDEN;
76 void* vector_at(const struct vector* v, unsigned pos) DECLSPEC_HIDDEN;
77 void* vector_add(struct vector* v, struct pool* pool) DECLSPEC_HIDDEN;
78 
80 {
81  struct vector key2index;
82  struct vector elements;
83 };
84 
85 void sparse_array_init(struct sparse_array* sa, unsigned elt_sz, unsigned bucket_sz) DECLSPEC_HIDDEN;
88 unsigned sparse_array_length(const struct sparse_array* sa) DECLSPEC_HIDDEN;
89 
91 {
92  const char* name;
94 };
95 
97 {
100 };
101 
102 struct hash_table
103 {
104  unsigned num_elts;
105  unsigned num_buckets;
107  struct pool* pool;
108 };
109 
110 void hash_table_init(struct pool* pool, struct hash_table* ht,
111  unsigned num_buckets) DECLSPEC_HIDDEN;
113 void hash_table_add(struct hash_table* ht, struct hash_table_elt* elt) DECLSPEC_HIDDEN;
114 
116 {
117  const struct hash_table* ht;
119  int index;
120  int last;
121 };
122 
123 void hash_table_iter_init(const struct hash_table* ht,
124  struct hash_table_iter* hti, const char* name) DECLSPEC_HIDDEN;
126 
127 
128 extern unsigned dbghelp_options DECLSPEC_HIDDEN;
130 #ifndef DBGHELP_STATIC_LIB
132 #endif
133 
134 enum 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 
144 enum 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 
151 struct location
152 {
153  unsigned kind : 8,
154  reg;
156 };
157 
158 struct symt
159 {
161 };
162 
163 struct symt_ht
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 
187 struct symt_data
188 {
189  struct symt symt;
190  struct hash_table_elt hash_elt; /* if global symbol */
192  struct symt* container;
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  {
213  } member;
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 */
227  struct vector vlines;
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 */
265  struct symt* base_type;
266  struct symt* index_type;
267 };
268 
270 {
271  struct symt symt;
273  enum BasicType bt;
275 };
276 
277 struct symt_enum
278 {
279  struct symt symt;
280  struct symt* base_type;
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;
297  struct symt* container;
298 };
299 
301 {
302  struct symt symt;
303  struct symt* pointsto;
305 };
306 
308 {
309  struct symt symt;
311  struct symt* type;
312 };
313 
314 struct symt_udt
315 {
316  struct symt symt;
318  enum UdtKind kind;
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 
333 struct process;
334 struct module;
335 
336 /* a module can be made of several debug information formats, so we have to
337  * support them all
338  */
340 {
347 };
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__
368 struct symt_idx_to_ptr
369 {
370  struct hash_table_elt hash_elt;
371  DWORD idx;
372  const struct symt *sym;
373 };
374 #endif
375 
376 struct module
377 {
378  struct process* process;
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 */
407  struct vector vtypes;
408 
409  /* source files */
410  unsigned sources_used;
411  unsigned sources_alloc;
412  char* sources;
414 };
415 
416 typedef 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 
427 struct process
428 {
429  struct process* next;
431  const struct loader_ops* loader;
434 
439 
440  struct module* lmodules;
442 
444 
445  unsigned buffer_size;
446  void* buffer;
447 
449 };
450 
451 static inline BOOL read_process_memory(const struct process *process, UINT64 addr, void *buf, size_t size)
452 {
453  return ReadProcessMemory(process->handle, (void*)(UINT_PTR)addr, buf, size, NULL);
454 }
455 
456 struct line_info
457 {
459  is_last : 1,
460  is_source_file : 1,
461  line_number;
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  {
501  } s32;
502  struct
503  {
508  } s64;
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 */
545  struct process *process;
547  unsigned flags_out;
548  /* thread information */
550  unsigned num_threads;
551  /* module information */
553  unsigned num_modules;
554  unsigned alloc_modules;
555  /* exception information */
556  /* output information */
560  struct dump_memory* mem;
561  unsigned num_mem;
562  unsigned alloc_mem;
564  unsigned num_mem64;
565  unsigned alloc_mem64;
566  /* callback information */
568 };
569 
570 union ctx
571 {
574 };
575 
577 struct cpu
578 {
582 
583  /* address manipulation */
585  enum cpu_addr, ADDRESS64* addr);
586 
587  /* stack manipulation */
588  BOOL (*stack_walk)(struct cpu_stack_walk *csw, STACKFRAME64 *frame,
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 */
609 typedef struct _PEB32
610 {
627 } PEB32;
628 
629 /* dbghelp.c */
632 extern BOOL pcs_callback(const struct process* pcs, ULONG action, void* data) DECLSPEC_HIDDEN;
633 extern void* fetch_buffer(struct process* pcs, unsigned size) DECLSPEC_HIDDEN;
634 extern const char* wine_dbgstr_addr(const ADDRESS64* addr) DECLSPEC_HIDDEN;
635 extern struct cpu* cpu_find(DWORD) DECLSPEC_HIDDEN;
636 extern const WCHAR *process_getenv(const struct process *process, const WCHAR *name);
638 
639 #ifndef __REACTOS__
640 /* elf_module.c */
642 struct elf_thunk_area;
643 extern int elf_is_in_thunk_area(ULONG_PTR addr, const struct elf_thunk_area* thunks) DECLSPEC_HIDDEN;
644 
645 /* macho_module.c */
647 #else
648 struct elf_thunk_area;
649 #endif
650 
651 /* minidump.c */
653 
654 /* module.c */
655 extern const WCHAR S_ElfW[] DECLSPEC_HIDDEN;
656 extern const WCHAR S_WineLoaderW[] DECLSPEC_HIDDEN;
657 extern const WCHAR S_SlashW[] DECLSPEC_HIDDEN;
658 extern const struct loader_ops no_loader_ops DECLSPEC_HIDDEN;
659 
660 extern struct module*
661  module_find_by_addr(const struct process* pcs, DWORD64 addr,
663 extern struct module*
664  module_find_by_nameW(const struct process* pcs,
665  const WCHAR* name) DECLSPEC_HIDDEN;
666 extern struct module*
667  module_find_by_nameA(const struct process* pcs,
668  const char* name) DECLSPEC_HIDDEN;
669 extern struct module*
670  module_is_already_loaded(const struct process* pcs,
671  const WCHAR* imgname) DECLSPEC_HIDDEN;
673 extern struct module*
674  module_new(struct process* pcs, const WCHAR* name,
675  enum module_type type, BOOL virtual,
678 extern struct module*
679  module_get_containee(const struct process* pcs,
680  const struct module* inner) DECLSPEC_HIDDEN;
682 extern BOOL module_remove(struct process* pcs,
683  struct module* module) DECLSPEC_HIDDEN;
684 extern void module_set_module(struct module* module, const WCHAR* name) DECLSPEC_HIDDEN;
685 #ifndef __REACTOS__
686 extern WCHAR * get_wine_loader_name(struct process *pcs) DECLSPEC_HIDDEN;
687 #endif
688 
689 /* msc.c */
690 extern 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;
695 extern BOOL pdb_fetch_file_info(const struct pdb_lookup* pdb_lookup, unsigned* matched) DECLSPEC_HIDDEN;
696 struct pdb_cmd_pair {
697  const char* name;
699 };
701  union ctx *context, struct pdb_cmd_pair *cpair) DECLSPEC_HIDDEN;
702 
703 /* path.c */
704 extern 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;
708 extern BOOL search_dll_path(const struct process* process, const WCHAR *name,
709  BOOL (*match)(void*, HANDLE, const WCHAR*), void *param) DECLSPEC_HIDDEN;
710 extern BOOL search_unix_path(const WCHAR *name, const WCHAR *path, BOOL (*match)(void*, HANDLE, const WCHAR*), void *param) DECLSPEC_HIDDEN;
711 extern const WCHAR* file_name(const WCHAR* str) DECLSPEC_HIDDEN;
712 extern const char* file_nameA(const char* str) DECLSPEC_HIDDEN;
713 
714 /* pe_module.c */
716 extern struct module*
717  pe_load_native_module(struct process* pcs, const WCHAR* name,
719 extern struct module*
720  pe_load_builtin_module(struct process* pcs, const WCHAR* name,
722 extern BOOL pe_load_debug_info(const struct process* pcs,
723  struct module* module) DECLSPEC_HIDDEN;
724 extern const char* pe_map_directory(struct module* module, int dirno, DWORD* size) DECLSPEC_HIDDEN;
725 
726 /* source.c */
727 extern unsigned source_new(struct module* module, const char* basedir, const char* source) DECLSPEC_HIDDEN;
728 extern const char* source_get(const struct module* module, unsigned idx) DECLSPEC_HIDDEN;
729 extern int source_rb_compare(const void *key, const struct wine_rb_entry *entry) DECLSPEC_HIDDEN;
730 
731 /* stabs.c */
732 typedef 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);
736 extern 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 */
742 struct image_file_map;
743 extern 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 */
750 extern 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
757 extern BOOL sw_read_mem(struct cpu_stack_walk* csw, DWORD64 addr, void* ptr, DWORD sz) DECLSPEC_HIDDEN;
758 #endif
760 extern void* sw_table_access(struct cpu_stack_walk* csw, DWORD64 addr) DECLSPEC_HIDDEN;
762 
763 /* symbol.c */
764 extern const char* symt_get_name(const struct symt* sym) DECLSPEC_HIDDEN;
765 extern WCHAR* symt_get_nameW(const struct symt* sym) DECLSPEC_HIDDEN;
766 extern BOOL symt_get_address(const struct symt* type, ULONG64* addr) DECLSPEC_HIDDEN;
767 extern int __cdecl symt_cmp_addr(const void* p1, const void* p2) DECLSPEC_HIDDEN;
768 extern void copy_symbolW(SYMBOL_INFOW* siw, const SYMBOL_INFO* si) DECLSPEC_HIDDEN;
769 extern struct symt_ht*
771 extern struct symt_compiland*
773  unsigned src_idx) DECLSPEC_HIDDEN;
774 extern struct symt_public*
775  symt_new_public(struct module* module,
776  struct symt_compiland* parent,
777  const char* typename,
780  unsigned size) DECLSPEC_HIDDEN;
781 extern 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;
787 extern 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;
795 extern void symt_add_func_line(struct module* module,
796  struct symt_function* func,
797  unsigned source_idx, int line_num,
799 extern 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;
805 extern struct symt_block*
807  struct symt_function* func,
808  struct symt_block* block,
809  unsigned pc, unsigned len) DECLSPEC_HIDDEN;
810 extern struct symt_block*
812  const struct symt_function* func,
813  struct symt_block* block, unsigned pc) DECLSPEC_HIDDEN;
814 extern struct symt_hierarchy_point*
816  struct symt_function* func,
817  enum SymTagEnum point,
818  const struct location* loc,
819  const char* name) DECLSPEC_HIDDEN;
820 extern BOOL symt_fill_func_line_info(const struct module* module,
821  const struct symt_function* func,
824 extern struct symt_thunk*
825  symt_new_thunk(struct module* module,
826  struct symt_compiland* parent,
827  const char* name, THUNK_ORDINAL ord,
829 extern struct symt_data*
831  struct symt_compiland* parent,
832  const char* name, struct symt* type,
833  const VARIANT* v) DECLSPEC_HIDDEN;
834 extern struct symt_hierarchy_point*
835  symt_new_label(struct module* module,
836  struct symt_compiland* compiland,
837  const char* name, ULONG_PTR address) DECLSPEC_HIDDEN;
838 extern struct symt* symt_index2ptr(struct module* module, DWORD id) DECLSPEC_HIDDEN;
839 extern DWORD symt_ptr2index(struct module* module, const struct symt* sym) DECLSPEC_HIDDEN;
840 
841 /* type.c */
842 extern void symt_init_basic(struct module* module) DECLSPEC_HIDDEN;
843 extern BOOL symt_get_info(struct module* module, const struct symt* type,
844  IMAGEHLP_SYMBOL_TYPE_INFO req, void* pInfo) DECLSPEC_HIDDEN;
845 extern struct symt_basic*
846  symt_new_basic(struct module* module, enum BasicType,
847  const char* typename, unsigned size) DECLSPEC_HIDDEN;
848 extern struct symt_udt*
849  symt_new_udt(struct module* module, const char* typename,
850  unsigned size, enum UdtKind kind) DECLSPEC_HIDDEN;
851 extern BOOL symt_set_udt_size(struct module* module,
852  struct symt_udt* type, unsigned size) DECLSPEC_HIDDEN;
853 extern BOOL symt_add_udt_element(struct module* module,
854  struct symt_udt* udt_type,
855  const char* name,
856  struct symt* elt_type, unsigned offset,
857  unsigned size) DECLSPEC_HIDDEN;
858 extern struct symt_enum*
859  symt_new_enum(struct module* module, const char* typename,
860  struct symt* basetype) DECLSPEC_HIDDEN;
861 extern BOOL symt_add_enum_element(struct module* module,
862  struct symt_enum* enum_type,
863  const char* name, int value) DECLSPEC_HIDDEN;
864 extern struct symt_array*
865  symt_new_array(struct module* module, int min, int max,
866  struct symt* base, struct symt* index) DECLSPEC_HIDDEN;
867 extern struct symt_function_signature*
869  struct symt* ret_type,
872  struct symt_function_signature* sig,
873  struct symt* param) DECLSPEC_HIDDEN;
874 extern struct symt_pointer*
876  struct symt* ref_type,
878 extern struct symt_typedef*
879  symt_new_typedef(struct module* module, struct symt* ref,
880  const char* name) DECLSPEC_HIDDEN;
static unsigned int block
Definition: xmlmemory.c:118
void(* remove)(struct process *pcs, struct module_format *modfmt)
BasicType
Definition: compat.h:1363
DWORD word_size
PGET_MODULE_BASE_ROUTINE f_modl_bas
PREAD_PROCESS_MEMORY_ROUTINE f_read_mem
const char * wine_dbgstr_addr(const ADDRESS64 *addr) DECLSPEC_HIDDEN
Definition: dbghelp.c:142
unsigned num_modules
BOOL symt_get_address(const struct symt *type, ULONG64 *addr) DECLSPEC_HIDDEN
Definition: type.c:119
GLenum func
Definition: glext.h:6028
const char * name
struct module * module_get_containee(const struct process *pcs, const struct module *inner) DECLSPEC_HIDDEN
Definition: module.c:349
struct list arena_list
pdb_kind
ULONG_PTR pc_offset
DWORD frame_regno
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
void module_set_module(struct module *module, const WCHAR *name) DECLSPEC_HIDDEN
Definition: module.c:142
PTRANSLATE_ADDRESS_ROUTINE64 f_xlat_adr
BOOL dwarf2_virtual_unwind(struct cpu_stack_walk *csw, DWORD_PTR ip, union ctx *ctx, DWORD64 *cfa) DECLSPEC_HIDDEN
Definition: dwarf.c:3258
struct hash_table_elt hash_elt
#define max(a, b)
Definition: svc.c:63
struct module * requested
WCHAR * search_path
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
WOW64_CONTEXT x86
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
LONG_PTR offset
struct pool * pool
BOOL symt_set_udt_size(struct module *module, struct symt_udt *type, unsigned size) DECLSPEC_HIDDEN
Definition: type.c:242
HMODULE module
Definition: main.cpp:47
struct symt * container
struct dump_module * modules
WCHAR * real_path
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 png_info_def **typedef void(__cdecl typeof(png_destroy_read_struct))(struct png_struct_def **
Definition: typeof.h:49
WCHAR * symt_get_nameW(const struct symt *sym) DECLSPEC_HIDDEN
Definition: type.c:106
unsigned sources_alloc
#define __cdecl
Definition: accygwin.h:79
struct vector vchildren
struct hash_table_elt * last
int __cdecl symt_cmp_addr(const void *p1, const void *p2) DECLSPEC_HIDDEN
Definition: symbol.c:57
struct symt * container
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
unsigned num_buckets
Definition: http.c:7094
GLenum GLuint GLenum GLsizei const GLchar * buf
Definition: glext.h:7751
Definition: match.c:28
void * vector_at(const struct vector *v, unsigned pos) DECLSPEC_HIDDEN
Definition: storage.c:162
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
unsigned sources_used
int elf_is_in_thunk_area(ULONG_PTR addr, const struct elf_thunk_area *thunks) DECLSPEC_HIDDEN
Definition: elf_module.c:602
ULONG_PTR address
int other
Definition: msacm.c:1376
struct hash_table ht_symbols
struct dump_memory * mem
struct vector vsymt
struct symt * container
BOOL dbghelp_opt_native
Definition: dbghelp.c:74
struct hash_table_bucket * buckets
GLintptr offset
Definition: glext.h:5920
BOOL search_dll_path(const struct process *process, const WCHAR *name, BOOL(*match)(void *, HANDLE, const WCHAR *), void *param) DECLSPEC_HIDDEN
Definition: path.c:695
struct module * module_find_by_nameA(const struct process *pcs, const char *name) DECLSPEC_HIDDEN
Definition: module.c:291
unsigned alloc_mem
BOOL(* get_addr)(HANDLE hThread, const CONTEXT *ctx, enum cpu_addr, ADDRESS64 *addr)
void * sw_table_access(struct cpu_stack_walk *csw, DWORD64 addr) DECLSPEC_HIDDEN
Definition: stack.c:119
struct cpu_stack_walk::@370::@372 s64
struct hash_table_elt hash_elt
union module_format::@368 u
static HANDLE process
Definition: process.c:76
struct symt_typedef * symt_new_typedef(struct module *module, struct symt *ref, const char *name) DECLSPEC_HIDDEN
Definition: type.c:428
GLuint GLuint GLsizei GLenum type
Definition: gl.h:1545
ULONG_PTR length
unsigned num_threads
const WCHAR S_SlashW[]
Definition: module.c:45
void copy_symbolW(SYMBOL_INFOW *siw, const SYMBOL_INFO *si) DECLSPEC_HIDDEN
Definition: symbol.c:1029
GLuint buffer
Definition: glext.h:5915
_In_ BOOL _In_ HANDLE hProcess
Definition: mapping.h:70
unsigned buffer_size
enum DataKind kind
PVOID(CALLBACK * PFUNCTION_TABLE_ACCESS_ROUTINE64)(HANDLE, DWORD64)
Definition: compat.h:927
DWORD LdrData
DWORD64(CALLBACK * PGET_MODULE_BASE_ROUTINE64)(HANDLE, DWORD64)
Definition: compat.h:928
#define ReadProcessMemory(a, b, c, d, e)
Definition: compat.h:506
struct vector vlines
struct wine_rb_tree sources_offsets_tree
PFUNCTION_TABLE_ACCESS_ROUTINE64 f_tabl_acs
const char * source_get(const struct module *module, unsigned idx) DECLSPEC_HIDDEN
Definition: source.c:130
BOOL(* fetch_minidump_thread)(struct dump_context *dc, unsigned index, unsigned flags, const CONTEXT *ctx)
struct symt * container
DWORD machine
const char * symt_get_name(const struct symt *sym) DECLSPEC_HIDDEN
Definition: type.c:81
enum UdtKind kind
unsigned num_buckets
struct vector elements
void minidump_add_memory_block(struct dump_context *dc, ULONG64 base, ULONG size, ULONG rva) DECLSPEC_HIDDEN
Definition: minidump.c:355
PREAD_PROCESS_MEMORY_ROUTINE64 f_read_mem
struct hash_table_elt hash_elt
unsigned num_symbols
DataKind
Definition: compat.h:1394
const char * filename
Definition: ioapi.h:135
char * sources
ULONG_PTR size
#define BOOL
Definition: nt_native.h:43
int load_addr
Definition: mkisofs.c:104
Definition: send.c:48
POINTL point
Definition: edittest.c:50
IMAGEHLP_STACK_FRAME ctx_frame
BOOL pdb_fetch_file_info(const struct pdb_lookup *pdb_lookup, unsigned *matched) DECLSPEC_HIDDEN
Definition: msc.c:2913
size_t arena_size
ULONG_PTR size
enum module_type type
uint32_t ULONG_PTR
Definition: typedefs.h:65
format_info
location_kind
unsigned is_elf
unsigned source_file
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
enum pdb_kind kind
void * pool_alloc(struct pool *a, size_t len) DECLSPEC_HIDDEN
Definition: storage.c:89
struct hash_table_elt hash_elt
struct cpu * cpu
const GUID * guid
THUNK_ORDINAL ordinal
void module_reset_debug_info(struct module *module) DECLSPEC_HIDDEN
Definition: module.c:1324
SymTagEnum
Definition: compat.h:1327
struct module * lmodules
ULONG_PTR dbg_hdr_addr
ULONG_PTR address
unsigned int BOOL
Definition: ntddk_ex.h:94
GLuint base
Definition: 3dtext.c:35
BOOL pe_load_debug_info(const struct process *pcs, struct module *module) DECLSPEC_HIDDEN
Definition: pe_module.c:747
enum SymTagEnum tag
int sortlist_valid
struct symt * type
int source_rb_compare(const void *key, const struct wine_rb_entry *entry) DECLSPEC_HIDDEN
Definition: source.c:40
const char * file_nameA(const char *str) DECLSPEC_HIDDEN
Definition: path.c:37
location_error
BOOL pe_load_nt_header(HANDLE hProc, DWORD64 base, IMAGE_NT_HEADERS *nth) DECLSPEC_HIDDEN
Definition: pe_module.c:877
WCHAR * environment
BOOL symt_add_function_signature_parameter(struct module *module, struct symt_function_signature *sig, struct symt *param) DECLSPEC_HIDDEN
Definition: type.c:394
static PVOID ptr
Definition: dispmode.c:27
unsigned int idx
Definition: utils.c:41
cpu_addr
const char * name
unsigned num_mem64
void hash_table_iter_init(const struct hash_table *ht, struct hash_table_iter *hti, const char *name) DECLSPEC_HIDDEN
Definition: storage.c:405
BOOL(* fetch_file_info)(struct process *process, const WCHAR *name, ULONG_PTR load_addr, DWORD_PTR *base, DWORD *size, DWORD *checksum)
DWORD64 sw_module_base(struct cpu_stack_walk *csw, DWORD64 addr) DECLSPEC_HIDDEN
Definition: stack.c:127
const WCHAR * str
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
unsigned char BOOLEAN
smooth NULL
Definition: ftsmooth.c:416
unsigned dbghelp_options DECLSPEC_HIDDEN
PTRANSLATE_ADDRESS_ROUTINE f_xlat_adr
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
UdtKind
Definition: compat.h:1386
void vector_init(struct vector *v, unsigned elt_sz, unsigned bucket_sz) DECLSPEC_HIDDEN
Definition: storage.c:133
ULONG_PTR offset
ULONG_PTR size
DWORD(CALLBACK * PTRANSLATE_ADDRESS_ROUTINE)(HANDLE, HANDLE, LPADDRESS)
Definition: compat.h:977
Definition: parser.c:48
_Reserved_ PVOID Reserved
Definition: winddi.h:3974
struct macho_module_info * macho_info
PSYMBOL_REGISTERED_CALLBACK reg_cb32
ULONG_PTR address
struct symt_data::@366::@367 member
DWORD64 sw_xlat_addr(struct cpu_stack_walk *csw, ADDRESS64 *addr) DECLSPEC_HIDDEN
Definition: stack.c:104
DWORD FastPebLockRoutine
GLuint index
Definition: glext.h:6031
unsigned num_sorttab
BOOL(* stack_walk)(struct cpu_stack_walk *csw, STACKFRAME64 *frame, union ctx *ctx)
union symt_data::@366 u
struct symt * type
DWORD64 reg_user
void * sparse_array_add(struct sparse_array *sa, ULONG_PTR key, struct pool *pool) DECLSPEC_HIDDEN
Definition: storage.c:281
struct symt_basic * symt_new_basic(struct module *module, enum BasicType, const char *typename, unsigned size) DECLSPEC_HIDDEN
Definition: type.c:192
struct module * module_is_already_loaded(const struct process *pcs, const WCHAR *imgname) DECLSPEC_HIDDEN
Definition: module.c:303
struct process * process_find_by_handle(HANDLE hProcess) DECLSPEC_HIDDEN
Definition: dbghelp.c:99
BOOL(CALLBACK * PREAD_PROCESS_MEMORY_ROUTINE64)(HANDLE, DWORD64, PVOID, DWORD, PDWORD)
Definition: compat.h:931
BOOL rsym_parse(struct module *module, unsigned long load_offset, const void *rsym, int rsymlen) DECLSPEC_HIDDEN
Definition: rsym.c:79
struct symt_pointer * symt_new_pointer(struct module *module, struct symt *ref_type, ULONG_PTR size) DECLSPEC_HIDDEN
Definition: type.c:414
struct module * pe_load_native_module(struct process *pcs, const WCHAR *name, HANDLE hFile, DWORD64 base, DWORD size) DECLSPEC_HIDDEN
Definition: pe_module.c:799
struct vector vchildren
MmuTrapHandler callback[0x30]
Definition: mmuobject.c:44
DWORD64(CALLBACK * PTRANSLATE_ADDRESS_ROUTINE64)(HANDLE, HANDLE, LPADDRESS64)
Definition: compat.h:929
DWORD symt_ptr2index(struct module *module, const struct symt *sym) DECLSPEC_HIDDEN
Definition: symbol.c:68
struct elf_module_info * elf_info
GLsizeiptr size
Definition: glext.h:5919
DWORD64 reloc_delta
PSYMBOL_REGISTERED_CALLBACK64 reg_cb
struct list arena_full
struct dump_thread * threads
BOOL module_get_debug(struct module_pair *) DECLSPEC_HIDDEN
Definition: module.c:374
Definition: dhcpd.h:61
r parent
Definition: btrfs.c:2944
void(* loc_compute)(struct process *pcs, const struct module_format *modfmt, const struct symt_function *func, struct location *loc)
__wchar_t WCHAR
Definition: xmlstorage.h:180
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
const struct loader_ops * loader
BOOL symt_get_func_line_next(const struct module *module, PIMAGEHLP_LINE64 line) DECLSPEC_HIDDEN
Definition: symbol.c:1734
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
ULONG_PTR is_last
const WCHAR S_ElfW[]
Definition: module.c:40
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
WCHAR modulename[64]
SYSTEM_INFO sysinfo
Definition: dbghelp.c:76
struct vector vtypes
GLfloat param
Definition: glext.h:5796
const WCHAR * process_getenv(const struct process *process, const WCHAR *name)
Definition: dbghelp.c:285
#define MAX_PATH
Definition: compat.h:34
void * buffer
struct symt * type
MINIDUMP_CALLBACK_INFORMATION * cb
struct location loc
unsigned long DWORD
Definition: ntddk_ex.h:95
GLenum GLenum GLenum GLenum mapping
Definition: glext.h:9031
unsigned flags_out
GLuint address
Definition: glext.h:9393
struct symt * index_type
BOOL(CALLBACK * PREAD_PROCESS_MEMORY_ROUTINE)(HANDLE, DWORD, PVOID, DWORD, PDWORD)
Definition: compat.h:976
VARIANT value
BOOL search_unix_path(const WCHAR *name, const WCHAR *path, BOOL(*match)(void *, HANDLE, const WCHAR *), void *param) DECLSPEC_HIDDEN
Definition: path.c:780
unsigned num_elts
void sparse_array_init(struct sparse_array *sa, unsigned elt_sz, unsigned bucket_sz) DECLSPEC_HIDDEN
Definition: storage.c:213
struct hash_table_elt hash_elt
void hash_table_add(struct hash_table *ht, struct hash_table_elt *elt) DECLSPEC_HIDDEN
Definition: storage.c:378
struct symt_enum * symt_new_enum(struct module *module, const char *typename, struct symt *basetype) DECLSPEC_HIDDEN
Definition: type.c:304
struct _PEB32 PEB32
unsigned __int3264 UINT_PTR
Definition: mstsclib_h.h:274
struct hash_table_elt * first
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
Definition: gl.h:1950
struct symt * container
void ** buckets
const WCHAR * file_name(const WCHAR *str) DECLSPEC_HIDDEN
Definition: path.c:45
MINIDUMP_TYPE type
unsigned alloc_mem64
GLbitfield flags
Definition: glext.h:7161
struct process * pcs
BOOLEAN InheritedAddressSpace
struct process * process
struct symt * base_type
unsigned elt_size
struct module * pe_load_builtin_module(struct process *pcs, const WCHAR *name, DWORD64 base, DWORD64 size) DECLSPEC_HIDDEN
Definition: pe_module.c:892
unsigned num_mem
BOOL validate_addr64(DWORD64 addr) DECLSPEC_HIDDEN
Definition: dbghelp.c:112
unsigned __int64 ULONG64
Definition: imports.h:198
struct dwarf2_module_info_s * dwarf2_info
unsigned reg
void pool_init(struct pool *a, size_t arena_size) DECLSPEC_HIDDEN
Definition: storage.c:43
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
GLenum const GLvoid * addr
Definition: glext.h:9621
#define index(s, c)
Definition: various.h:29
struct location var
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
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
uint32_t entry
Definition: isohybrid.c:63
struct module * module_find_by_addr(const struct process *pcs, DWORD64 addr, enum module_type type) DECLSPEC_HIDDEN
Definition: module.c:420
BOOL pcs_callback(const struct process *pcs, ULONG action, void *data) DECLSPEC_HIDDEN
Definition: dbghelp.c:705
union line_info::@369 u
GLenum GLsizei len
Definition: glext.h:6722
void * sparse_array_find(const struct sparse_array *sa, ULONG_PTR idx) DECLSPEC_HIDDEN
Definition: storage.c:271
DWORD KernelCallbackTable
Definition: _list.h:228
void * hash_table_iter_up(struct hash_table_iter *hti) DECLSPEC_HIDDEN
Definition: storage.c:422
module_type
static cab_ULONG checksum(const cab_UBYTE *data, cab_UWORD bytes, cab_ULONG csum)
Definition: fdi.c:353
PGET_MODULE_BASE_ROUTINE64 f_modl_bas
unsigned sparse_array_length(const struct sparse_array *sa) DECLSPEC_HIDDEN
Definition: storage.c:314
struct symt * pointsto
uint32_t DWORD_PTR
Definition: typedefs.h:65
_In_ HANDLE hFile
Definition: mswsock.h:90
unsigned char BYTE
Definition: xxhash.c:193
unsigned alloc_modules
unsigned num_elts
char * pool_strdup(struct pool *a, const char *str) DECLSPEC_HIDDEN
Definition: storage.c:126
struct symt * symt_index2ptr(struct module *module, DWORD id) DECLSPEC_HIDDEN
Definition: symbol.c:110
const struct loader_ops no_loader_ops
Definition: module.c:1405
struct cpu * cpu_find(DWORD) DECLSPEC_HIDDEN
Definition: dbghelp.c:183
ULONG EnvironmentUpdateCount
WCHAR * get_wine_loader_name(struct process *pcs) DECLSPEC_HIDDEN
Definition: module.c:150
unsigned kind
BOOL sw_read_mem(struct cpu_stack_walk *csw, DWORD64 addr, void *ptr, DWORD sz) DECLSPEC_HIDDEN
Definition: stack.c:95
void hash_table_destroy(struct hash_table *ht) DECLSPEC_HIDDEN
Definition: storage.c:342
DWORD ImageBaseAddress
void symt_init_basic(struct module *module) DECLSPEC_HIDDEN
BOOL symt_normalize_function(struct module *module, const struct symt_function *func) DECLSPEC_HIDDEN
Definition: symbol.c:473
struct symt_udt * symt_new_udt(struct module *module, const char *typename, unsigned size, enum UdtKind kind) DECLSPEC_HIDDEN
Definition: type.c:219
void * vector_add(struct vector *v, struct pool *pool) DECLSPEC_HIDDEN
Definition: storage.c:171
DWORD FastPebUnlockRoutine
BOOL symt_get_info(struct module *module, const struct symt *type, IMAGEHLP_SYMBOL_TYPE_INFO req, void *pInfo) DECLSPEC_HIDDEN
Definition: type.c:536
const WCHAR * action
Definition: action.c:7783
struct process * next
uint64_t DWORD64
Definition: typedefs.h:67
CONTEXT ctx
const GLdouble * v
Definition: gl.h:2040
DWORD(CALLBACK * PGET_MODULE_BASE_ROUTINE)(HANDLE, DWORD)
Definition: compat.h:979
struct process * process
void pool_destroy(struct pool *a) DECLSPEC_HIDDEN
Definition: storage.c:50
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 pdb_module_info * pdb_info
BOOLEAN ReadImageFileExecOptions
unsigned shift
Definition: rbtree.h:35
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)
DWORD calc_crc32(HANDLE handle) DECLSPEC_HIDDEN
Definition: dbghelp.c:848
BOOL(CALLBACK * PSYMBOL_REGISTERED_CALLBACK64)(HANDLE, ULONG, ULONG64, ULONG64)
Definition: compat.h:930
const WCHAR S_WineLoaderW[]
Definition: module.c:42
struct hash_table_elt * next
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
unsigned short is_virtual
struct hash_table_elt * element
ULONG_PTR address
BOOL(CALLBACK * PSYMBOL_REGISTERED_CALLBACK)(HANDLE, ULONG, PVOID, PVOID)
Definition: compat.h:975
union cpu_stack_walk::@370 u
static const struct newhuff ht[]
Definition: huffman.h:296
unsigned(* map_dwarf_register)(unsigned regno, const struct module *module, BOOL eh_frame)
struct hash_table ht_types
__int3264 LONG_PTR
Definition: mstsclib_h.h:276
#define min(a, b)
Definition: monoChain.cc:55
BOOLEAN SpareBool
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
unsigned dbghelp_options
Definition: dbghelp.c:73
unsigned sorttab_size
BOOL module_remove(struct process *pcs, struct module *module) DECLSPEC_HIDDEN
Definition: module.c:885
struct hash_table_elt hash_elt
ULONG_PTR size
BOOL(* enum_modules)(struct process *process, enum_modules_cb callback, void *user)
struct module * module
HANDLE hThread
Definition: wizard.c:27
ULONG_PTR size
void hash_table_init(struct pool *pool, struct hash_table *ht, unsigned num_buckets) DECLSPEC_HIDDEN
Definition: storage.c:334
struct cpu_stack_walk::@370::@371 s32
PVOID(CALLBACK * PFUNCTION_TABLE_ACCESS_ROUTINE)(HANDLE, DWORD)
Definition: compat.h:978
unsigned source_new(struct module *module, const char *basedir, const char *source) DECLSPEC_HIDDEN
Definition: source.c:66
BOOLEAN BeingDebugged
const struct hash_table * ht
CV_call_e
Definition: compat.h:1971
Definition: name.c:38
DWORD RVA
Definition: compat.h:1010
ULONG_PTR is_first
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
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
unsigned int ULONG
Definition: retypes.h:1
HANDLE handle
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
static const WCHAR dc[]
BOOL macho_read_wine_loader_dbg_info(struct process *pcs, ULONG_PTR addr) DECLSPEC_HIDDEN
WCHAR * get_dos_file_name(const WCHAR *filename) DECLSPEC_HIDDEN
Definition: path.c:671
enum _IMAGEHLP_SYMBOL_TYPE_INFO IMAGEHLP_SYMBOL_TYPE_INFO
struct symt_ht ** addr_sorttab
DWORD SubSystemData
unsigned buckets_allocated
struct symt * base_type
DWORD Mutant
const char * PCSTR
Definition: typedefs.h:52
DWORD FastPebLock
GLboolean GLboolean GLboolean GLboolean a
Definition: glext.h:6204
unsigned long long UINT64
struct vector vchildren
ULONG_PTR is_source_file
const char * filename
void * fetch_buffer(struct process *pcs, unsigned size) DECLSPEC_HIDDEN
Definition: dbghelp.c:128
BOOL(* load_debug_info)(struct process *process, struct module *module)
IMAGEHLP_MODULEW64 module
DWORD ProcessParameters
static BOOL read_process_memory(const struct process *process, UINT64 addr, void *buf, size_t size)
void user(int argc, const char *argv[])
Definition: cmds.c:1350
struct module * next
DWORD ProcessHeap
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
BOOL reg_is_unicode
PFUNCTION_TABLE_ACCESS_ROUTINE f_tabl_acs
BOOL(* fetch_minidump_module)(struct dump_context *dc, unsigned index, unsigned flags)
struct cpu * dbghelp_current_cpu
Definition: dbghelp.c:169
struct module * effective
static struct sockaddr_in sa
Definition: adnsresfilter.c:69
struct hash_table_elt hash_elt
enum BasicType bt
unsigned vector_length(const struct vector *v) DECLSPEC_HIDDEN
Definition: storage.c:157
struct hash_table_elt hash_elt
struct symt_compiland * symt_new_compiland(struct module *module, ULONG_PTR address, unsigned src_idx) DECLSPEC_HIDDEN
Definition: symbol.c:207
static unsigned(__cdecl *hash_bstr)(bstr_t s)
struct vector vchildren
THUNK_ORDINAL
Definition: compat.h:1962
struct vector vchildren
struct symt_ht * symt_find_nearest(struct module *module, DWORD_PTR addr) DECLSPEC_HIDDEN
Definition: symbol.c:903
BOOL(* synchronize_module_list)(struct process *process)
Definition: path.c:41
BOOL(* enum_modules_cb)(const WCHAR *, ULONG_PTR addr, void *user)
struct module * module_find_by_nameW(const struct process *pcs, const WCHAR *name) DECLSPEC_HIDDEN
Definition: module.c:279
struct dump_memory64 * mem64
struct pe_module_info * pe_info
const char * pe_map_directory(struct module *module, int dirno, DWORD *size) DECLSPEC_HIDDEN
Definition: pe_module.c:327
ULONG_PTR line_number
enum _MINIDUMP_TYPE MINIDUMP_TYPE
const char * name
struct hash_table_elt hash_elt
GLuint const GLchar * name
Definition: glext.h:6031
BOOL elf_read_wine_loader_dbg_info(struct process *pcs, ULONG_PTR addr) DECLSPEC_HIDDEN
Definition: elf_module.c:1753