Eric Pouech
d6bd8661ff
dbghelp: Dwarf & parse context.
...
- split the data structures for walking through the data (abbrev,
cu... -> traverse_ctx) and data manipulation/loading (-> parse_ctx)
- created dwarf2_parse_compilation_unit() for clarity
- added section structure to gather information about all ELF sections
related to all dwarf2 sections (more to come)
2006-06-20 11:52:01 +02:00
Eric Pouech
298198c318
dbghelp: Dwarf & udt members.
...
- correctly set size & offsets for regular udt members
- first shot at bitfields for udt members
2006-06-20 11:51:34 +02:00
Eric Pouech
a2b4432107
dbghelp: Dwarf & function blocks.
...
- properly handling function blocks
- handling of variables inside of blocks (either on stack, or in a
register, or relative to the frame register if any)
- added dwarf2_subprogram_t structure so that we can pass around
relevant information for function parsing
2006-06-20 11:51:16 +02:00
Eric Pouech
7476f8c840
dbghelp: dwarf: Properly handle function formal parameters.
2006-06-20 11:50:39 +02:00
Eric Pouech
cff41cf9f2
dbghelp: Storage of func locals & parameters.
...
- added the ability to tell to add_func_local whether we're adding
a local variable or a parameter (and removed the black magic
we were using)
- we can now address variables defined as an offset to a register
2006-06-20 11:47:38 +02:00
Eric Pouech
df179e9bf1
dbghelp: Dwarf & global symbols.
...
Offset the addresses for global symbols (func & variables) by the base
image of the corresponding module.
2006-06-20 11:47:16 +02:00
Eric Pouech
686237e043
dbghelp: dwarf: Added support for function labels.
2006-06-20 11:46:51 +02:00
Eric Pouech
6cee154b23
dbghelp: Proper support for nested types definitions (even in C).
2006-06-20 11:46:18 +02:00
Eric Pouech
468956f4cd
dbghelp: Dwarf - function scheme.
...
- various fixes to follow better the functions definition (nesting,
subroutines...)
- don't directly parse types referenced by a subprogram, they'll be
loaded anyway when needed
2006-06-20 11:45:48 +02:00
Eric Pouech
ae67326863
dbghelp: Dwarf & locations.
...
- put back the block attribute parsing
- added dwarf2_compute_location to properly decode a location (at
least starting it)
2006-06-20 11:45:33 +02:00
Eric Pouech
6d61cc0c7b
dbghelp: Dwarf compiland.
...
- rewrote all entities loading to make use of new dwarf2_debug_info_t scheme
- commented out the location parsing which is an ugly hack
2006-06-20 11:43:17 +02:00
Eric Pouech
ec8328d1b1
dbghelp: Dwarf & new scheme.
...
- add some helpers for the rewrite
- module is now part of the dwarf2_parse_context
2006-06-20 11:42:45 +02:00
Eric Pouech
2301d1a3d0
dbghelp: Dwarf & type references.
...
Removed unused type references scheme that we'll implement using a
different scheme in next patches.
2006-06-20 11:41:55 +02:00
Eric Pouech
3bd7d2976e
dbghelp: Dwarf merge parsing of UDT.
...
Merge into a single function the struct/class/union parsing.
2006-06-20 11:41:36 +02:00
Eric Pouech
c571b8506e
dbghelp: Dwarf & debug info entries.
...
- now loading the debug info entries into specific structures
- this will help writing new functions
- this will allow handling of forward references
2006-06-20 11:41:15 +02:00
Eric Pouech
b51cd5750f
dbghelp: Dwarf abbrev table is now a sparse array.
...
- added a pool for memory allocation when parsing a compilation unit
- now using the brand new sparse array for the abbrev table
2006-06-20 11:40:55 +02:00
Eric Pouech
ad02173d21
dbghelp: Added another basic type for storage: the sparse array.
2006-06-20 11:40:32 +02:00
Eric Pouech
b319600130
dbghelp: Transform a few TRACEs into WARNs (especially for unhandled stuff).
2006-06-20 11:39:58 +02:00
Eric Pouech
474c5cc2a5
dbghelp: Remove the unneeded level attribute while parsing.
2006-06-20 11:39:33 +02:00
Eric Pouech
57c662f4d1
dbghelp: Moved all Dwarf standard definitions into dwarf.h file.
2006-06-20 11:38:49 +02:00
Eric Pouech
00cf2da5d6
dbghelp: Dwarf & typedefs.
...
- removed lookup for name for the const modifier
- hard wire dwarf-reference to our pointer types
2006-06-20 11:37:50 +02:00
Eric Pouech
d396ec31f9
dbghelp: Dwarf & module's symtype.
...
- we should set the module's symtype upon success
- removed unneeded bRet variable
2006-06-20 11:37:28 +02:00
Eric Pouech
24743774e8
dbghelp: Dwarf2 & AT_byte_size.
...
- AT_byte_size can be larger than a single byte (especially for enums)
- added missing enumeration type parsing
2006-06-20 11:37:14 +02:00
Jeremy White
466d3fe8e5
dbghelp: Fix a Solaris compilation error.
2006-06-19 22:38:20 +02:00
Ge van Geldorp
5f299d6fe5
dbghelp: Fix compilation for x86_64.
2006-06-19 21:23:05 +02:00
Michael Stefaniuc
fee72b607a
Yet another round of redundant NULL checks before HeapFree.
2006-06-13 11:40:23 +02:00
Pierre d'Herbemont
deab874424
dbghelp: Implement fetch_thread_info on powerpc.
2006-06-09 21:08:26 +02:00
Andrew Talbot
8527f91043
dbghelp: Write-strings warning fix.
2006-06-07 15:23:55 +02:00
Jonathan Ernst
360a3f9142
Update the address of the Free Software Foundation.
2006-05-23 14:11:13 +02:00
Eric Pouech
a5b1581e48
dbghelp: SymFindFileInPath and PDB
...
- implemented correct lookup when SymFindFileInPath is called to find
a PDB file
- added pdb_fetch_file_info to gather relevant information
- when looking for a PDB file (from a .EXE or a .DLL), now using
SymFindFileInPath to locate the PDB file with the correct
information
2006-05-11 12:20:12 +02:00
Eric Pouech
2a1d8efde4
dbghelp: Removed call to registered callback when unloading a module.
...
First, native dbghelp doesn't do it, and it crashed windbg, likely
because we got the undocumented arguments wrong.
2006-05-11 12:19:24 +02:00
Eric Pouech
c25d3ac7d5
dbghelp: Implemented SymSearchW.
2006-05-11 12:18:46 +02:00
Eric Pouech
208e701a7b
dbghelp: Implemented SymEnumSymbolsW.
2006-05-11 12:18:30 +02:00
Eric Pouech
96efcbc47b
dbghelp: Improved SymSearch (now using tag, index and address).
2006-05-11 12:18:06 +02:00
Eric Pouech
5eb1c98853
dbghelp: Factorize and simplify a bit symbol enumeration code.
2006-05-11 12:17:47 +02:00
Eric Pouech
08ba9cecff
dbghelp: Stubbed SymGetSourceFileTokenW.
2006-05-11 12:17:23 +02:00
Eric Pouech
55f8a1b8fb
dbghelp: Implemented SymGetLineFromAddrW64.
2006-05-11 12:17:03 +02:00
Eric Pouech
7d4194f57b
dbghelp: Implemented SymFromAddrW.
2006-05-11 12:16:24 +02:00
Eric Pouech
d2d85a1b46
dbghelp: Implemented SymGetModuleInfoW and SymGetModuleInfoW64.
2006-05-11 12:16:01 +02:00
Eric Pouech
922a7bd191
dbghelp: Implemented SymLoadModuleExW.
2006-05-11 12:15:21 +02:00
Eric Pouech
4a80e63a29
dbghelp: Implemented SymRegisterCallbackW64 and 64 -> 64W mapping function.
2006-05-11 12:14:51 +02:00
Eric Pouech
2e7d3c386a
dbghelp: SymInitializeW.
...
- implemented SymInitializeW (and made SymInitialize call it)
- implemented Sym{SG}etSearchPathW (and made Sym{SG}etSearchPath
call them)
- per process search path is now stored as unicode string
2006-05-11 12:14:06 +02:00
Eric Pouech
572e18ef39
dbghelp: Updated spec file.
2006-05-11 12:13:50 +02:00
Eric Pouech
645134397b
dbghelp: Stub for SymGetSourceFileToken.
2006-05-08 14:48:10 +02:00
Eric Pouech
a49adbc49e
dbghelp: Base and symbols.
...
- report the correct image base for a symbol which is
seen as being in a builtin PE module, whilst its debug
information is gotten from an ELF module
- module_get_debug now returns a pair of modules
(the requested that has to be presented back to the client
and the effective one, which contains the debug info)
- reworked SymFromName in order to provide also the revelant
module base address
2006-05-08 14:47:56 +02:00
Alexandre Julliard
ae5aacb4cc
dbghelp: Don't fail to initialize if we can't load the main module as ELF.
2006-04-19 14:30:10 +02:00
Paul Vriens
0c24301394
dbghelp: Params of LPSTACKFRAME64 only has 4 elements.
2006-04-17 11:57:47 +02:00
Eric Pouech
983d8aea3e
dbghelp: Module should be case insensitive.
...
When looking up a symbol name in the form module!name, the module
lookup should be insensitive.
2006-03-27 11:30:50 +02:00
Eric Pouech
12eb665402
dbghelp: MSC fixes.
...
- wrong cut & paste across versions of a given record type
- wrong definition for register_v2
2006-03-18 18:21:30 +01:00
Eric Pouech
7eefc9eb0d
dbghelp: Support for LF_VTSHAPE in MSC.
...
- added preliminary support for VT (virtual table) shape
type record
- as we don't do C++, it's just a hack to get rid of
some errors
2006-03-18 18:21:06 +01:00
Eric Pouech
e737dbec7f
dbghelp: MSC forward declaration.
...
- create an infrastructure for handling forward usage
of type records
- used it in some cases (pointer to yet not defined udt,
function signature, modifiers)
2006-03-18 18:20:50 +01:00
Eric Pouech
79b47204f0
dbghelp: Type parsing refactoring.
...
- seperate types' table handling from a single type handling
by adding codeview_parse_one_type function
- factored all calls for caching symt
- make type parsing helpers return the symt instead of a
simple error status
2006-03-18 18:20:37 +01:00
Eric Pouech
dadd1080ee
dbghelp: Fixes for NB11 types.
...
- when checking debug info in NB09 or NB11 format (CodeView),
try to load the global types section
2006-03-18 18:20:10 +01:00
Eric Pouech
9e6573315d
dbghelp: MSC handling of function signature's parameters.
...
- now correctly parsing parameters types for a function
signature and storing them in dbghelp internal structures
2006-03-18 18:18:18 +01:00
Eric Pouech
209e175d83
dbghelp: Cleanup MSC bitfield handling.
...
- no longer caching bitfield information but accessing it directly
when needed
- removed all kludges for bitfield handling
- reused BOOL parameter to codeview_get_type for monitoring
traces (will be used in later patches)
2006-03-18 18:17:56 +01:00
Eric Pouech
4c2cec5553
dbghelp: Fieldlist.
...
- now that we have offset tables to type, we can cleanly
parse the field-lists and remove the associated kludges
- also adding internal structure for easing parameter sharing
across functions (codeview_type_parse)
- in mscvpdb.h, also reparated the type records that are
referenced from other type records (union codeview_type_ref)
from type records referenced by symbols (union codeview_type)
2006-03-18 18:17:30 +01:00
Eric Pouech
633ab584c1
dbghelp: MSC types.
...
- enforce the type records that can be accessed by symbols (these are
anyway the high level ones)
2006-03-18 18:17:08 +01:00
Eric Pouech
68a0ca7418
dbghelp: Types parsing.
...
- our engine for parsing types section now requires in entry
an offsets table for getting directly to each type in the
section
- (re)construct this table for PDB types
2006-03-18 18:16:50 +01:00
Eric Pouech
bbf0251c78
dbghelp: CV's ssearch.
...
- added definitions for start_search symbol info
- silenced warnings from this symbol
2006-03-18 18:16:23 +01:00
Eric Pouech
4143ce5e0b
dbghelp: Moved codeview structures and definitions from msc.c to mscvpdb.h.
2006-03-18 18:15:43 +01:00
Eric Pouech
c0e0de6c4e
dbghelp: Compiland and source files are not the same thing.
...
- in MSC debug info parsing, clearly separate a source file
information from a compiland (including in linetab structure)
- in ELF debug info parsing, now storing compiland directly
in symtab_elt while browsing the symtab section (we still
create twice the compilands, once in stabs/dwarf parsing,
a second time in symtab parsing)
2006-03-18 18:15:14 +01:00
Eric Pouech
db90e17d92
dbghelp: Live target detection.
...
- DBGHELP_NOLIVE env variable is tested earlier to avoid
some strange effects in live target detection
- in WineDbg, delete DBGHELP_NOLIVE before attaching to
a process, because we know it must be a live target
2006-03-18 18:05:38 +01:00
Eric Pouech
34636b026b
dbghelp: Added type for array index.
...
- added type for array index
- correctly parsing array index type in stabs, Dwarf2 and MSC formats
- fixed SyGetTypeInfo accordingly
2006-03-06 11:42:44 +01:00
Eric Pouech
e70617883b
dbghelp: Implemented TI_GET_COUNT in SymGetTypeInfo for function.
2006-03-06 11:37:02 +01:00
Eric Pouech
88aa6703af
dbghelp: Virtual modules.
...
Rewrote virtual modules handling so that it's an option to either PE
or ELF modules rather than a specific type.
2006-02-20 12:16:08 +01:00
Eric Pouech
0f86dd9324
dbghelp: Fix SymFindFileInPath to return files matching the requested
...
criteria (it was mainly doing the opposite).
2006-02-20 11:14:34 +01:00
Alexandre Julliard
133b3069bb
dbghelp: Use wine_dll_enum_load_path to search the dll load path.
2006-02-17 17:38:28 +01:00
Alexandre Julliard
29aea6e1c7
Fixed a couple of function prototypes.
2006-02-17 14:08:38 +01:00
Eric Pouech
c9de37d71c
dbghelp: Always set the size to public symbols to 1 when we don't know the size
...
so that they can only be search on their start address
2006-02-14 14:04:16 +01:00
Eric Pouech
2ce5eca6a5
winedbg: Added support for function parameters passed in registers.
...
Added correct stabs parsing for function parameters in registers.
Added a couple of helper functions to make code smaller and more
readable.
2006-02-06 11:27:32 +01:00
Dmitry Timoshkov
57a579ffcd
Make more arrays const.
2006-01-24 14:00:32 +01:00
Alexandre Julliard
9daaab54c7
winedbg: Use Win32 types instead of long long.
2006-01-23 16:47:07 +01:00
Eric Pouech
0509fe72c9
dbghelp: Return better values in module information.
...
- 32/64: number of symbols is now correct
- 64: the 64 bit extra fields are now initialized with some non null
yet sensible value
2006-01-23 16:38:57 +01:00
Eric Pouech
bdf32ee032
dbghelp: Brought dbghelp.h a bit closer to PSDK definitions.
2006-01-23 16:37:48 +01:00
Eric Pouech
e5d09bf374
dbghelp: SymSetContext should return FALSE when setting twice the same
...
frame context.
2006-01-23 16:30:25 +01:00
Eric Pouech
eca3715f88
dbghelp: Live targets.
...
In SymInitialize, now trying to check if the hProcess is a real live
target or not. If we think it is, try to grasp ELF information from
it.
2006-01-23 16:30:03 +01:00
Eric Pouech
418591c8ea
dbghelp: Started implementation of the global callback mechanism.
2006-01-23 16:29:21 +01:00
Eric Pouech
3792b1add3
dbghelp: Symbol info.
...
- better coding for SYMBOL_INFO filling
- some fixes on some fields (parameters)
- now using the max size for symbol info
2006-01-23 16:26:57 +01:00
Eric Pouech
558130a696
dbghelp: StackWalk (32 and 64 bit version).
...
- enhance implementation of StackWalk (32 and 64 bit version) by
making use of module information and calling for FPO
- FPO part is still non functional
- implemented SymGetModuleBase64
- stubbed SymFunctionTableAccess64
2006-01-05 13:41:25 +01:00
Eric Pouech
5d210af9dc
dbghelp: Removed no longer needed 'stub' in TRACEs.
2006-01-05 12:19:18 +01:00
Eric Pouech
a959732fff
dbghelp: Internal search routines can now be case sensitive/insensitive.
...
- Now handling option SYMOPT_CASE_INSENSITIVE for symbol search.
- Quick implementation of SymSearch on top of SymEnumSymbols (should
be the other way around).
2005-12-26 12:57:26 +01:00
Eric Pouech
87ab6e6cd8
dbghelp: Correct handling for all module names.
2005-12-22 11:11:39 +01:00
Eric Pouech
099cfeaac8
dbghelp: Added a few extensions to make windbg happy.
2005-12-20 11:49:24 +01:00
Eric Pouech
be849decf6
dbghelp: First stab at supporting calling convention in function signature.
2005-12-19 18:22:54 +01:00
Eric Pouech
750575ccf2
dbghelp: Return proper size for local & parameters in SYMBOL_INFO.
2005-12-19 18:20:47 +01:00
Eric Pouech
17d93f9855
dbghelp: Implemented SymMatchString.
2005-12-19 18:16:35 +01:00
Eric Pouech
a229618ef1
dbghelp: New stubs (needed for windbg startup).
2005-12-19 17:41:52 +01:00
Eric Pouech
177bf4c1a6
dbghelp: Fixed loading .so modules from a living target.
2005-12-19 17:41:43 +01:00
Eric Pouech
df7be14ce2
dbghelp: Fixed missing parameters info in StackWalk64.
2005-12-19 17:41:32 +01:00
Alexandre Julliard
ae964ac801
Take advantage of the __EXCEPT_PAGE_FAULT macro.
2005-12-16 17:17:57 +01:00
Eric Pouech
7b11aacbae
dbghelp: Final touch on StackWalk64 so that it works.
2005-12-06 21:21:31 +01:00
Eric Pouech
1f872df26c
dbghelp: Implemented StackWalk64.
2005-12-05 12:50:10 +01:00
Eric Pouech
34db4856ae
dbghelp,winedbg: SYMBOL_INFO fix.
...
- native dbghelp returns in SYMBOL_INFO.TypeIndex the index of the
type of the symbol (we were returning the symbol index instead)
- fixed winedbg accordingly
2005-12-05 12:00:54 +01:00
Francois Gouget
e186f54c4e
Add IMAGEHLP_MODULEW64.
...
Add SymGetModuleInfoW64() and SymLoadModule64().
2005-12-02 13:00:24 +01:00
Vitaliy Margolen
cb5e95c876
Stub StackWalk64.
2005-11-29 11:48:57 +01:00
Eric Pouech
d10a90dca0
Added support for 'loading' virtual modules.
2005-11-29 11:47:40 +01:00
Eric Pouech
82aa9210df
Implemented SymGet{Next|Prev}Line64.
2005-11-29 11:45:28 +01:00
Eric Pouech
8bd3c060ec
Now correctly checking calling down to 32 bit version.
2005-11-29 11:45:16 +01:00
Eric Pouech
dd3e1dc525
Implemented SymGetModuleInfo64.
2005-11-29 11:42:13 +01:00
Eric Pouech
22f9f4f0c3
Implemented SymUnloadModule64.
2005-11-29 11:35:10 +01:00