25#define NONAMELESSUNION
31#ifndef DBGHELP_STATIC_LIB
77 default:
return "---";
130 default:
return FALSE;
162 const char*
typename)
193 const char*
typename,
unsigned size)
224 TRACE_(dbghelp_symt)(
"Adding udt %s:%s\n",
248 FIXME_(dbghelp_symt)(
"Changing size for %s from %u to %u\n",
265 const char*
name,
struct symt* elt_type,
291 m->hash_elt.next =
NULL;
294 m->container = &udt_type->
symt;
305 struct symt* basetype)
333 e->container = &enum_type->
symt;
378 struct symt* ret_type,
406 arg->container = &sig_type->
symt;
460 TRACE(
"(%p %s %p %p)\n",
477 sym_info->Size =
size;
478 sym_info->ModBase =
pair.requested->module.BaseOfImage;
481 sym_info->Address = 0;
482 sym_info->Register = 0;
484 sym_info->Tag =
type->tag;
488 sym_info->NameLen =
min(
strlen(tmp),sym_info->MaxNameLen-1);
489 memcpy(sym_info->Name, tmp, sym_info->NameLen);
490 sym_info->Name[sym_info->NameLen] =
'\0';
493 sym_info->Name[sym_info->NameLen = 0] =
'\0';
494 if (!EnumSymbolsCallback(sym_info, sym_info->Size, UserContext))
break;
526 et.
user = UserContext;
544#define X(_t) (*((_t*)pInfo))
562 FIXME(
"Unsupported sym-tag %s for find-children\n",
620 FIXME(
"Unsupported sym-tag %s for get-children-count\n",
642 default:
return FALSE;
693 FIXME(
"Unsupported sym-tag %s for get-length\n",
720 FIXME(
"Unsupported sym-tag %s for get-lexical-parent\n",
752 FIXME(
"Unknown kind (%u) for get-offset\n",
758 FIXME(
"Unsupported sym-tag %s for get-offset\n",
810 FIXME(
"Unsupported sym-tag %s for get-type\n",
853 default:
return FALSE;
861 FIXME(
"No support for calling convention for this signature\n");
886 FIXME(
"Unsupported GetInfo request (%u)\n", req);
889 FIXME(
"Unknown GetInfo request (%u)\n", req);
930 if (!pcs)
return FALSE;
int strcmp(const char *String1, const char *String2)
ACPI_SIZE strlen(const char *String)
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
static const WCHAR nameW[]
DWORD symt_ptr2index(struct module *module, const struct symt *sym) DECLSPEC_HIDDEN
void vector_init(struct vector *v, unsigned elt_sz, unsigned bucket_sz) DECLSPEC_HIDDEN
void * vector_add(struct vector *v, struct pool *pool) DECLSPEC_HIDDEN
void * pool_alloc(struct pool *a, size_t len) DECLSPEC_HIDDEN
unsigned vector_length(const struct vector *v) DECLSPEC_HIDDEN
void hash_table_iter_init(const struct hash_table *ht, struct hash_table_iter *hti, const char *name) DECLSPEC_HIDDEN
void * hash_table_iter_up(struct hash_table_iter *hti) DECLSPEC_HIDDEN
struct module * module_find_by_addr(const struct process *pcs, DWORD64 addr, enum module_type type) DECLSPEC_HIDDEN
void * vector_at(const struct vector *v, unsigned pos) DECLSPEC_HIDDEN
void copy_symbolW(SYMBOL_INFOW *siw, const SYMBOL_INFO *si) DECLSPEC_HIDDEN
BOOL module_get_debug(struct module_pair *) DECLSPEC_HIDDEN
char * pool_strdup(struct pool *a, const char *str) DECLSPEC_HIDDEN
void hash_table_add(struct hash_table *ht, struct hash_table_elt *elt) DECLSPEC_HIDDEN
struct symt * symt_index2ptr(struct module *module, DWORD id) DECLSPEC_HIDDEN
BOOL(CALLBACK * PSYM_ENUMERATESYMBOLS_CALLBACK)(PSYMBOL_INFO, ULONG, PVOID)
BOOL(CALLBACK * PSYM_ENUMERATESYMBOLS_CALLBACKW)(PSYMBOL_INFOW, ULONG, PVOID)
struct _SYMBOL_INFOW SYMBOL_INFOW
static __inline const char * wine_dbgstr_longlong(ULONGLONG ll)
struct _SYMBOL_INFO SYMBOL_INFO
@ TI_GET_VIRTUALBASEPOINTEROFFSET
@ TI_GET_CALLING_CONVENTION
@ TI_GET_VIRTUALBASECLASS
@ TI_GET_VIRTUALTABLESHAPEID
@ TI_GET_ARRAYINDEXTYPEID
#define WINE_DECLARE_DEBUG_CHANNEL(x)
enum _IMAGEHLP_SYMBOL_TYPE_INFO IMAGEHLP_SYMBOL_TYPE_INFO
#define MultiByteToWideChar
#define ERROR_INVALID_NAME
struct process * process_find_by_handle(HANDLE hProcess)
BOOL symt_set_udt_size(struct module *module, struct symt_udt *udt, unsigned size)
static DWORD symt_array_count(struct module *module, const struct symt_array *array)
struct symt_udt * symt_new_udt(struct module *module, const char *typename, unsigned size, enum UdtKind kind)
static const char * symt_get_tag_str(DWORD tag)
struct symt_function_signature * symt_new_function_signature(struct module *module, struct symt *ret_type, enum CV_call_e call_conv)
BOOL WINAPI SymGetTypeFromName(HANDLE hProcess, ULONG64 BaseOfDll, PCSTR Name, PSYMBOL_INFO Symbol)
static void symt_add_type(struct module *module, struct symt *symt)
WCHAR * symt_get_nameW(const struct symt *sym)
static struct symt * symt_find_type_by_name(const struct module *module, enum SymTagEnum sym_tag, const char *typename)
struct symt_pointer * symt_new_pointer(struct module *module, struct symt *ref_type, ULONG_PTR size)
BOOL WINAPI SymGetTypeInfo(HANDLE hProcess, DWORD64 ModBase, ULONG TypeId, IMAGEHLP_SYMBOL_TYPE_INFO GetType, PVOID pInfo)
BOOL symt_get_address(const struct symt *type, ULONG64 *addr)
BOOL WINAPI SymEnumTypesW(HANDLE hProcess, ULONG64 BaseOfDll, PSYM_ENUMERATESYMBOLS_CALLBACKW EnumSymbolsCallback, PVOID UserContext)
BOOL symt_add_udt_element(struct module *module, struct symt_udt *udt_type, const char *name, struct symt *elt_type, unsigned offset, unsigned size)
BOOL symt_add_function_signature_parameter(struct module *module, struct symt_function_signature *sig_type, struct symt *param)
struct symt_enum * symt_new_enum(struct module *module, const char *typename, struct symt *basetype)
BOOL symt_add_enum_element(struct module *module, struct symt_enum *enum_type, const char *name, int value)
const char * symt_get_name(const struct symt *sym)
struct symt_basic * symt_new_basic(struct module *module, enum BasicType bt, const char *typename, unsigned size)
BOOL WINAPI SymEnumTypes(HANDLE hProcess, ULONG64 BaseOfDll, PSYM_ENUMERATESYMBOLS_CALLBACK EnumSymbolsCallback, PVOID UserContext)
struct symt_array * symt_new_array(struct module *module, int min, int max, struct symt *base, struct symt *index)
BOOL symt_get_info(struct module *module, const struct symt *type, IMAGEHLP_SYMBOL_TYPE_INFO req, void *pInfo)
struct symt_typedef * symt_new_typedef(struct module *module, struct symt *ref, const char *name)
unsigned int(__cdecl typeof(jpeg_read_scanlines))(struct jpeg_decompress_struct *
GLuint GLuint GLsizei GLenum type
GLenum const GLvoid * addr
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
_In_ BOOL _In_ HANDLE hProcess
#define memcpy(s1, s2, n)
PSYM_ENUMERATESYMBOLS_CALLBACKW callback
char buffer[sizeof(SYMBOL_INFOW)+256 *sizeof(WCHAR)]
IMAGEHLP_MODULEW64 module
struct hash_table ht_types
struct module_format * format_info[DFI_LAST]
struct hash_table_elt hash_elt
struct hash_table_elt hash_elt
struct hash_table_elt hash_elt
#define CONTAINING_RECORD(address, type, field)