Commit 5f9bcb13 authored by Eric Pouech's avatar Eric Pouech Committed by Alexandre Julliard

mscvpdb.h: Move parsing definitions to dbghelp.

parent 59a187ec
...@@ -663,6 +663,21 @@ struct cpu ...@@ -663,6 +663,21 @@ struct cpu
extern struct cpu* dbghelp_current_cpu DECLSPEC_HIDDEN; extern struct cpu* dbghelp_current_cpu DECLSPEC_HIDDEN;
/* PDB and Codeview */
struct msc_debug_info
{
struct module* module;
int nsect;
const IMAGE_SECTION_HEADER* sectp;
int nomap;
const OMAP* omapp;
const BYTE* root;
};
/* coff.c */
extern BOOL coff_process_info(const struct msc_debug_info* msc_dbg) DECLSPEC_HIDDEN;
/* dbghelp.c */ /* dbghelp.c */
extern struct process* process_find_by_handle(HANDLE hProcess) DECLSPEC_HIDDEN; extern struct process* process_find_by_handle(HANDLE hProcess) DECLSPEC_HIDDEN;
extern BOOL validate_addr64(DWORD64 addr) DECLSPEC_HIDDEN; extern BOOL validate_addr64(DWORD64 addr) DECLSPEC_HIDDEN;
......
...@@ -1551,15 +1551,15 @@ static unsigned int codeview_map_offset(const struct msc_debug_info* msc_dbg, ...@@ -1551,15 +1551,15 @@ static unsigned int codeview_map_offset(const struct msc_debug_info* msc_dbg,
unsigned int offset) unsigned int offset)
{ {
int nomap = msc_dbg->nomap; int nomap = msc_dbg->nomap;
const OMAP_DATA* omapp = msc_dbg->omapp; const OMAP* omapp = msc_dbg->omapp;
int i; int i;
if (!nomap || !omapp) return offset; if (!nomap || !omapp) return offset;
/* FIXME: use binary search */ /* FIXME: use binary search */
for (i = 0; i < nomap - 1; i++) for (i = 0; i < nomap - 1; i++)
if (omapp[i].from <= offset && omapp[i+1].from > offset) if (omapp[i].rva <= offset && omapp[i+1].rva > offset)
return !omapp[i].to ? 0 : omapp[i].to + (offset - omapp[i].from); return !omapp[i].rvaTo ? 0 : omapp[i].rvaTo + (offset - omapp[i].rva);
return 0; return 0;
} }
...@@ -3414,8 +3414,8 @@ BOOL pe_load_debug_directory(const struct process* pcs, struct module* module, ...@@ -3414,8 +3414,8 @@ BOOL pe_load_debug_directory(const struct process* pcs, struct module* module,
{ {
if (dbg[i].Type == IMAGE_DEBUG_TYPE_OMAP_FROM_SRC) if (dbg[i].Type == IMAGE_DEBUG_TYPE_OMAP_FROM_SRC)
{ {
msc_dbg.nomap = dbg[i].SizeOfData / sizeof(OMAP_DATA); msc_dbg.nomap = dbg[i].SizeOfData / sizeof(OMAP);
msc_dbg.omapp = (const OMAP_DATA*)(mapping + dbg[i].PointerToRawData); msc_dbg.omapp = (const OMAP*)(mapping + dbg[i].PointerToRawData);
break; break;
} }
} }
......
...@@ -2520,29 +2520,6 @@ typedef struct _PDB_FPO_DATA ...@@ -2520,29 +2520,6 @@ typedef struct _PDB_FPO_DATA
#include "poppack.h" #include "poppack.h"
/* ----------------------------------------------
* Information used for parsing
* ---------------------------------------------- */
typedef struct
{
DWORD from;
DWORD to;
} OMAP_DATA;
struct msc_debug_info
{
struct module* module;
int nsect;
const IMAGE_SECTION_HEADER* sectp;
int nomap;
const OMAP_DATA* omapp;
const BYTE* root;
};
/* coff.c */
extern BOOL coff_process_info(const struct msc_debug_info* msc_dbg);
/* =================================================== /* ===================================================
* The old CodeView stuff (for NB09 and NB11) * The old CodeView stuff (for NB09 and NB11)
* =================================================== */ * =================================================== */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment