diff --git a/programs/winedbg/break.c b/programs/winedbg/break.c index c76a86865f..e9f71480f9 100644 --- a/programs/winedbg/break.c +++ b/programs/winedbg/break.c @@ -299,14 +299,14 @@ void break_add_break_from_lineno(int lineno, BOOL swbp) if (lineno != -1) { - IMAGEHLP_LINE il; + IMAGEHLP_LINE64 il; DWORD disp; DWORD_PTR linear = (DWORD_PTR)memory_to_linear_addr(&bkln.addr); il.SizeOfStruct = sizeof(il); - if (!SymGetLineFromAddr(dbg_curr_process->handle, linear, &disp, &il)) + if (!SymGetLineFromAddr64(dbg_curr_process->handle, linear, &disp, &il)) { dbg_printf("Unable to add breakpoint (unknown address %lx)\n", linear); return; diff --git a/programs/winedbg/dbg.y b/programs/winedbg/dbg.y index ea4229d345..855407f9f9 100644 --- a/programs/winedbg/dbg.y +++ b/programs/winedbg/dbg.y @@ -46,7 +46,7 @@ static void parser(const char*); struct dbg_lvalue lvalue; char* string; INT_PTR integer; - IMAGEHLP_LINE listing; + IMAGEHLP_LINE64 listing; struct expr* expression; struct type_expr_t type; } @@ -184,7 +184,7 @@ list_arg: | pathname ':' identifier { symbol_get_line($1, $3, &$$); } | '*' expr_lvalue { DWORD disp; ADDRESS64 addr; $$.SizeOfStruct = sizeof($$); types_extract_as_address(&$2, &addr); - SymGetLineFromAddr(dbg_curr_process->handle, (unsigned long)memory_to_linear_addr(& addr), &disp, & $$); } + SymGetLineFromAddr64(dbg_curr_process->handle, (unsigned long)memory_to_linear_addr(& addr), &disp, & $$); } ; run_command: diff --git a/programs/winedbg/debugger.h b/programs/winedbg/debugger.h index c02b71e6be..7e2559ece5 100644 --- a/programs/winedbg/debugger.h +++ b/programs/winedbg/debugger.h @@ -375,7 +375,7 @@ extern void print_address(const ADDRESS64* addr, BOOLEAN with_line); extern void print_basic(const struct dbg_lvalue* value, char format); /* source.c */ -extern void source_list(IMAGEHLP_LINE* src1, IMAGEHLP_LINE* src2, int delta); +extern void source_list(IMAGEHLP_LINE64* src1, IMAGEHLP_LINE64* src2, int delta); extern void source_list_from_addr(const ADDRESS64* addr, int nlines); extern void source_show_path(void); extern void source_add_path(const char* path); @@ -395,7 +395,7 @@ extern BOOL stack_get_current_symbol(SYMBOL_INFO* sym); extern enum sym_get_lval symbol_get_lvalue(const char* name, const int lineno, struct dbg_lvalue* addr, BOOL bp_disp); extern void symbol_read_symtable(const char* filename, unsigned long offset); extern enum dbg_line_status symbol_get_function_line_status(const ADDRESS64* addr); -extern BOOL symbol_get_line(const char* filename, const char* func, IMAGEHLP_LINE* ret); +extern BOOL symbol_get_line(const char* filename, const char* func, IMAGEHLP_LINE64* ret); extern void symbol_info(const char* str); extern void symbol_print_local(const SYMBOL_INFO* sym, ULONG_PTR base, BOOL detailed); extern int symbol_info_locals(void); diff --git a/programs/winedbg/memory.c b/programs/winedbg/memory.c index c33291080c..2292ea6936 100644 --- a/programs/winedbg/memory.c +++ b/programs/winedbg/memory.c @@ -588,11 +588,11 @@ void print_address(const ADDRESS64* addr, BOOLEAN with_line) if (disp64) dbg_printf("+0x%lx", (DWORD_PTR)disp64); if (with_line) { - IMAGEHLP_LINE il; + IMAGEHLP_LINE64 il; IMAGEHLP_MODULE im; il.SizeOfStruct = sizeof(il); - if (SymGetLineFromAddr(dbg_curr_process->handle, (DWORD_PTR)lin, &disp, &il)) + if (SymGetLineFromAddr64(dbg_curr_process->handle, (DWORD_PTR)lin, &disp, &il)) dbg_printf(" [%s:%u]", il.FileName, il.LineNumber); im.SizeOfStruct = sizeof(im); if (SymGetModuleInfo(dbg_curr_process->handle, (DWORD_PTR)lin, &im)) diff --git a/programs/winedbg/source.c b/programs/winedbg/source.c index 95ec209cc6..e341d48289 100644 --- a/programs/winedbg/source.c +++ b/programs/winedbg/source.c @@ -286,7 +286,7 @@ static int source_display(const char* sourcefile, int start, int end) return rtn; } -void source_list(IMAGEHLP_LINE* src1, IMAGEHLP_LINE* src2, int delta) +void source_list(IMAGEHLP_LINE64* src1, IMAGEHLP_LINE64* src2, int delta) { int end; int start; @@ -344,7 +344,7 @@ void source_list(IMAGEHLP_LINE* src1, IMAGEHLP_LINE* src2, int delta) void source_list_from_addr(const ADDRESS64* addr, int nlines) { - IMAGEHLP_LINE il; + IMAGEHLP_LINE64 il; ADDRESS64 la; DWORD disp; @@ -355,9 +355,9 @@ void source_list_from_addr(const ADDRESS64* addr, int nlines) } il.SizeOfStruct = sizeof(il); - if (SymGetLineFromAddr(dbg_curr_process->handle, - (unsigned long)memory_to_linear_addr(addr), - &disp, &il)) + if (SymGetLineFromAddr64(dbg_curr_process->handle, + (DWORD_PTR)memory_to_linear_addr(addr), + &disp, &il)) source_list(&il, NULL, nlines); } diff --git a/programs/winedbg/stack.c b/programs/winedbg/stack.c index 92ddd47ca2..221ad345f6 100644 --- a/programs/winedbg/stack.c +++ b/programs/winedbg/stack.c @@ -232,7 +232,7 @@ static void stack_print_addr_and_args(int nf) char buffer[sizeof(SYMBOL_INFO) + 256]; SYMBOL_INFO* si = (SYMBOL_INFO*)buffer; IMAGEHLP_STACK_FRAME ihsf; - IMAGEHLP_LINE il; + IMAGEHLP_LINE64 il; IMAGEHLP_MODULE im; DWORD64 disp64; @@ -263,8 +263,8 @@ static void stack_print_addr_and_args(int nf) dbg_printf(")"); il.SizeOfStruct = sizeof(il); - if (SymGetLineFromAddr(dbg_curr_process->handle, ihsf.InstructionOffset, - &disp, &il)) + if (SymGetLineFromAddr64(dbg_curr_process->handle, + ihsf.InstructionOffset, &disp, &il)) dbg_printf(" [%s:%u]", il.FileName, il.LineNumber); dbg_printf(" in %s", im.ModuleName); } diff --git a/programs/winedbg/symbol.c b/programs/winedbg/symbol.c index 785e380876..35d1c5d4cd 100644 --- a/programs/winedbg/symbol.c +++ b/programs/winedbg/symbol.c @@ -403,13 +403,13 @@ enum sym_get_lval symbol_get_lvalue(const char* name, const int lineno, else { DWORD disp; - IMAGEHLP_LINE il; + IMAGEHLP_LINE64 il; BOOL found = FALSE; il.SizeOfStruct = sizeof(il); - SymGetLineFromAddr(dbg_curr_process->handle, - (DWORD_PTR)memory_to_linear_addr(&sgv.syms[i].lvalue.addr), - &disp, &il); + SymGetLineFromAddr64(dbg_curr_process->handle, + (DWORD_PTR)memory_to_linear_addr(&sgv.syms[i].lvalue.addr), + &disp, &il); do { if (lineno == il.LineNumber) @@ -418,7 +418,7 @@ enum sym_get_lval symbol_get_lvalue(const char* name, const int lineno, found = TRUE; break; } - } while (SymGetLineNext(dbg_curr_process->handle, &il)); + } while (SymGetLineNext64(dbg_curr_process->handle, &il)); if (!found) WINE_FIXME("No line (%d) found for %s (setting to symbol start)\n", lineno, name); @@ -521,7 +521,7 @@ void symbol_read_symtable(const char* filename, unsigned long offset) */ enum dbg_line_status symbol_get_function_line_status(const ADDRESS64* addr) { - IMAGEHLP_LINE il; + IMAGEHLP_LINE64 il; DWORD disp; ULONG64 disp64, start; DWORD_PTR lin = (DWORD_PTR)memory_to_linear_addr(addr); @@ -552,7 +552,7 @@ enum dbg_line_status symbol_get_function_line_status(const ADDRESS64* addr) return dbg_no_line_info; } /* we should have a function now */ - if (!SymGetLineFromAddr(dbg_curr_process->handle, lin, &disp, &il)) + if (!SymGetLineFromAddr64(dbg_curr_process->handle, lin, &disp, &il)) return dbg_no_line_info; func.module = sym->ModBase; @@ -575,13 +575,14 @@ enum dbg_line_status symbol_get_function_line_status(const ADDRESS64* addr) * Returns sourcefile name and line number in a format that the listing * handler can deal with. */ -BOOL symbol_get_line(const char* filename, const char* name, IMAGEHLP_LINE* line) +BOOL symbol_get_line(const char* filename, const char* name, + IMAGEHLP_LINE64* line) { struct sgv_data sgv; char buffer[512]; DWORD opt, disp; unsigned i, found = FALSE; - IMAGEHLP_LINE il; + IMAGEHLP_LINE64 il; sgv.num = 0; sgv.num_thunks = 0; @@ -619,7 +620,7 @@ BOOL symbol_get_line(const char* filename, const char* name, IMAGEHLP_LINE* line DWORD_PTR linear = (DWORD_PTR)memory_to_linear_addr(&sgv.syms[i].lvalue.addr); il.SizeOfStruct = sizeof(il); - if (!SymGetLineFromAddr(dbg_curr_process->handle, linear, &disp, &il)) + if (!SymGetLineFromAddr64(dbg_curr_process->handle, linear, &disp, &il)) continue; if (filename && strcmp(il.FileName, filename)) continue; if (found) diff --git a/programs/winedbg/tgt_active.c b/programs/winedbg/tgt_active.c index a25fbd4a69..8d13667083 100644 --- a/programs/winedbg/tgt_active.c +++ b/programs/winedbg/tgt_active.c @@ -196,14 +196,14 @@ static unsigned dbg_exception_prolog(BOOL is_debug, BOOL first_chance, const EXC SYMBOL_INFO* si = (SYMBOL_INFO*)buffer; void* lin = memory_to_linear_addr(&addr); DWORD64 disp64; - IMAGEHLP_LINE il; + IMAGEHLP_LINE64 il; DWORD disp; si->SizeOfStruct = sizeof(*si); si->MaxNameLen = 256; il.SizeOfStruct = sizeof(il); if (SymFromAddr(dbg_curr_process->handle, (DWORD_PTR)lin, &disp64, si) && - SymGetLineFromAddr(dbg_curr_process->handle, (DWORD_PTR)lin, &disp, &il)) + SymGetLineFromAddr64(dbg_curr_process->handle, (DWORD_PTR)lin, &disp, &il)) { if ((!last_name || strcmp(last_name, si->Name)) || (!last_file || strcmp(last_file, il.FileName)))