ReactOS 0.4.16-dev-1537-g4e425b5
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,
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/* dbghelp.c */
611extern BOOL pcs_callback(const struct process* pcs, ULONG action, void* data) DECLSPEC_HIDDEN;
612extern void* fetch_buffer(struct process* pcs, unsigned size) DECLSPEC_HIDDEN;
613extern const char* wine_dbgstr_addr(const ADDRESS64* addr) DECLSPEC_HIDDEN;
614extern struct cpu* cpu_find(DWORD) DECLSPEC_HIDDEN;
615extern const WCHAR *process_getenv(const struct process *process, const WCHAR *name);
617
618#ifndef __REACTOS__
619/* elf_module.c */
621struct elf_thunk_area;
622extern int elf_is_in_thunk_area(ULONG_PTR addr, const struct elf_thunk_area* thunks) DECLSPEC_HIDDEN;
623
624/* macho_module.c */
626#else
627struct elf_thunk_area;
628#endif
629
630/* minidump.c */
632
633/* module.c */
634extern const WCHAR S_ElfW[] DECLSPEC_HIDDEN;
635extern const WCHAR S_WineLoaderW[] DECLSPEC_HIDDEN;
636extern const WCHAR S_SlashW[] DECLSPEC_HIDDEN;
637extern const struct loader_ops no_loader_ops DECLSPEC_HIDDEN;
638
639extern struct module*
640 module_find_by_addr(const struct process* pcs, DWORD64 addr,
642extern struct module*
643 module_find_by_nameW(const struct process* pcs,
644 const WCHAR* name) DECLSPEC_HIDDEN;
645extern struct module*
646 module_find_by_nameA(const struct process* pcs,
647 const char* name) DECLSPEC_HIDDEN;
648extern struct module*
649 module_is_already_loaded(const struct process* pcs,
650 const WCHAR* imgname) DECLSPEC_HIDDEN;
652extern struct module*
653 module_new(struct process* pcs, const WCHAR* name,
654 enum module_type type, BOOL virtual,
657extern struct module*
658 module_get_containee(const struct process* pcs,
659 const struct module* inner) DECLSPEC_HIDDEN;
661extern BOOL module_remove(struct process* pcs,
663extern void module_set_module(struct module* module, const WCHAR* name) DECLSPEC_HIDDEN;
664#ifndef __REACTOS__
666#endif
667
668/* msc.c */
669extern BOOL pe_load_debug_directory(const struct process* pcs,
670 struct module* module,
671 const BYTE* mapping,
672 const IMAGE_SECTION_HEADER* sectp, DWORD nsect,
673 const IMAGE_DEBUG_DIRECTORY* dbg, int nDbg) DECLSPEC_HIDDEN;
676 const char* name;
678};
680 union ctx *context, struct pdb_cmd_pair *cpair) DECLSPEC_HIDDEN;
681
682/* path.c */
683extern BOOL path_find_symbol_file(const struct process* pcs, const struct module* module,
684 PCSTR full_path, enum module_type type, const GUID* guid, DWORD dw1, DWORD dw2,
685 WCHAR *buffer, BOOL* is_unmatched) DECLSPEC_HIDDEN;
687extern BOOL search_dll_path(const struct process* process, const WCHAR *name,
688 BOOL (*match)(void*, HANDLE, const WCHAR*), void *param) DECLSPEC_HIDDEN;
689extern BOOL search_unix_path(const WCHAR *name, const WCHAR *path, BOOL (*match)(void*, HANDLE, const WCHAR*), void *param) DECLSPEC_HIDDEN;
690extern const WCHAR* file_name(const WCHAR* str) DECLSPEC_HIDDEN;
691extern const char* file_nameA(const char* str) DECLSPEC_HIDDEN;
692
693/* pe_module.c */
695extern struct module*
696 pe_load_native_module(struct process* pcs, const WCHAR* name,
698extern struct module*
699 pe_load_builtin_module(struct process* pcs, const WCHAR* name,
701extern BOOL pe_load_debug_info(const struct process* pcs,
703extern const char* pe_map_directory(struct module* module, int dirno, DWORD* size) DECLSPEC_HIDDEN;
704
705/* source.c */
706extern unsigned source_new(struct module* module, const char* basedir, const char* source) DECLSPEC_HIDDEN;
707extern const char* source_get(const struct module* module, unsigned idx) DECLSPEC_HIDDEN;
708extern int source_rb_compare(const void *key, const struct wine_rb_entry *entry) DECLSPEC_HIDDEN;
709
710/* stabs.c */
711typedef void (*stabs_def_cb)(struct module* module, ULONG_PTR load_offset,
712 const char* name, ULONG_PTR offset,
713 BOOL is_public, BOOL is_global, unsigned char other,
714 struct symt_compiland* compiland, void* user);
715extern BOOL stabs_parse(struct module* module, ULONG_PTR load_offset,
716 const char* stabs, size_t nstab, size_t stabsize,
717 const char* strs, int strtablen,
719
720/* dwarf.c */
721struct image_file_map;
722extern BOOL dwarf2_parse(struct module* module, ULONG_PTR load_offset,
723 const struct elf_thunk_area* thunks,
724 struct image_file_map* fmap) DECLSPEC_HIDDEN;
726 union ctx *ctx, DWORD64 *cfa) DECLSPEC_HIDDEN;
727
728/* rsym.c */
729extern BOOL rsym_parse(struct module* module, unsigned long load_offset,
730 const void* rsym, int rsymlen) DECLSPEC_HIDDEN;
731
732
733
734/* stack.c */
735#ifndef DBGHELP_STATIC_LIB
736extern BOOL sw_read_mem(struct cpu_stack_walk* csw, DWORD64 addr, void* ptr, DWORD sz) DECLSPEC_HIDDEN;
737#endif
741
742/* symbol.c */
743extern const char* symt_get_name(const struct symt* sym) DECLSPEC_HIDDEN;
744extern WCHAR* symt_get_nameW(const struct symt* sym) DECLSPEC_HIDDEN;
746extern int __cdecl symt_cmp_addr(const void* p1, const void* p2) DECLSPEC_HIDDEN;
747extern void copy_symbolW(SYMBOL_INFOW* siw, const SYMBOL_INFO* si) DECLSPEC_HIDDEN;
748extern struct symt_ht*
750extern struct symt_compiland*
752 unsigned src_idx) DECLSPEC_HIDDEN;
753extern struct symt_public*
755 struct symt_compiland* parent,
756 const char* typename,
759 unsigned size) DECLSPEC_HIDDEN;
760extern struct symt_data*
762 struct symt_compiland* parent,
763 const char* name, unsigned is_static,
764 struct location loc, ULONG_PTR size,
765 struct symt* type) DECLSPEC_HIDDEN;
766extern struct symt_function*
768 struct symt_compiland* parent,
769 const char* name,
771 struct symt* type) DECLSPEC_HIDDEN;
773 const struct symt_function* func) DECLSPEC_HIDDEN;
774extern void symt_add_func_line(struct module* module,
775 struct symt_function* func,
776 unsigned source_idx, int line_num,
778extern struct symt_data*
780 struct symt_function* func,
781 enum DataKind dt, const struct location* loc,
782 struct symt_block* block,
783 struct symt* type, const char* name) DECLSPEC_HIDDEN;
784extern struct symt_block*
786 struct symt_function* func,
787 struct symt_block* block,
788 unsigned pc, unsigned len) DECLSPEC_HIDDEN;
789extern struct symt_block*
791 const struct symt_function* func,
792 struct symt_block* block, unsigned pc) DECLSPEC_HIDDEN;
793extern struct symt_hierarchy_point*
795 struct symt_function* func,
796 enum SymTagEnum point,
797 const struct location* loc,
798 const char* name) DECLSPEC_HIDDEN;
799extern BOOL symt_fill_func_line_info(const struct module* module,
800 const struct symt_function* func,
803extern struct symt_thunk*
805 struct symt_compiland* parent,
806 const char* name, THUNK_ORDINAL ord,
808extern struct symt_data*
810 struct symt_compiland* parent,
811 const char* name, struct symt* type,
812 const VARIANT* v) DECLSPEC_HIDDEN;
813extern struct symt_hierarchy_point*
815 struct symt_compiland* compiland,
817extern struct symt* symt_index2ptr(struct module* module, DWORD id) DECLSPEC_HIDDEN;
818extern DWORD symt_ptr2index(struct module* module, const struct symt* sym) DECLSPEC_HIDDEN;
819
820/* type.c */
822extern BOOL symt_get_info(struct module* module, const struct symt* type,
824extern struct symt_basic*
826 const char* typename, unsigned size) DECLSPEC_HIDDEN;
827extern struct symt_udt*
828 symt_new_udt(struct module* module, const char* typename,
829 unsigned size, enum UdtKind kind) DECLSPEC_HIDDEN;
830extern BOOL symt_set_udt_size(struct module* module,
831 struct symt_udt* type, unsigned size) DECLSPEC_HIDDEN;
833 struct symt_udt* udt_type,
834 const char* name,
835 struct symt* elt_type, unsigned offset,
836 unsigned size) DECLSPEC_HIDDEN;
837extern struct symt_enum*
838 symt_new_enum(struct module* module, const char* typename,
839 struct symt* basetype) DECLSPEC_HIDDEN;
841 struct symt_enum* enum_type,
842 const char* name, int value) DECLSPEC_HIDDEN;
843extern struct symt_array*
844 symt_new_array(struct module* module, int min, int max,
845 struct symt* base, struct symt* index) DECLSPEC_HIDDEN;
846extern struct symt_function_signature*
848 struct symt* ret_type,
851 struct symt_function_signature* sig,
852 struct symt* param) DECLSPEC_HIDDEN;
853extern struct symt_pointer*
855 struct symt* ref_type,
857extern struct symt_typedef*
858 symt_new_typedef(struct module* module, struct symt* ref,
859 const char* name) DECLSPEC_HIDDEN;
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
HDC dc
Definition: cylfrac.c:34
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:454
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:498
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:295
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:70
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:527
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:380
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:59
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:226
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:442
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:258
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:415
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
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:209
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:1482
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:1031
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:328
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:112
BOOL symt_normalize_function(struct module *module, const struct symt_function *func) DECLSPEC_HIDDEN
Definition: symbol.c:475
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:556
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:1736
struct symt_ht * symt_find_nearest(struct module *module, DWORD_PTR addr) DECLSPEC_HIDDEN
Definition: symbol.c:905
#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
GUID guid
Definition: version.c:147
action
Definition: namespace.c:707
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
GLenum func
Definition: glext.h:6028
GLuint address
Definition: glext.h:9393
GLuint buffer
Definition: glext.h:5915
GLsizeiptr size
Definition: glext.h:5919
GLintptr offset
Definition: glext.h:5920
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
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
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
#define wine_rb_entry
Definition: rbtree.h:404
#define wine_rb_tree
Definition: rbtree.h:405
LONG num_buckets
Definition: threadpool.c:328
Definition: http.c:7252
struct cpu_stack_walk::@420::@421 s32
PGET_MODULE_BASE_ROUTINE f_modl_bas
PTRANSLATE_ADDRESS_ROUTINE64 f_xlat_adr
PREAD_PROCESS_MEMORY_ROUTINE f_read_mem
PGET_MODULE_BASE_ROUTINE64 f_modl_bas
PREAD_PROCESS_MEMORY_ROUTINE64 f_read_mem
struct cpu * cpu
union cpu_stack_walk::@420 u
PFUNCTION_TABLE_ACCESS_ROUTINE64 f_tabl_acs
struct cpu_stack_walk::@420::@422 s64
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
union line_info::@419 u
ULONG_PTR pc_offset
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)
struct pdb_module_info * pdb_info
struct elf_module_info * elf_info
union module_format::@418 u
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
struct symt * type
ULONG_PTR length
struct symt * container
struct hash_table_elt hash_elt
union symt_data::@416 u
VARIANT value
LONG_PTR offset
struct location var
enum DataKind kind
struct symt_data::@416::@417 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
#define max(a, b)
Definition: svc.c:63
BOOL matched
Definition: taskkill.c:46
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:96
static unsigned int block
Definition: xmlmemory.c:101
__wchar_t WCHAR
Definition: xmlstorage.h:180
unsigned char BYTE
Definition: xxhash.c:193