Eric Pouech
4823663957
dbghelp: Fix erroneous access to dwarf symbol cache.
...
(Spotted by Dan Kegel with valgrind).
2008-02-12 22:40:46 +01:00
Eric Pouech
43afc9178b
dbghelp: Attempt to cache some basic symbol types for easier and faster code.
2008-02-07 11:59:52 +01:00
Eric Pouech
75803e9448
dbghelp: Extended the internal enumeration information so that we know the underlying integral type.
2008-02-07 11:59:52 +01:00
Eric Pouech
a4dfe1b042
dbghelp: Added support for labels outside functions (and used it in msc parsing).
2008-02-07 11:59:52 +01:00
Eric Pouech
2af9736fbb
dbghelp: Silence superfluous message (spotted by Robert Reif).
2008-01-14 13:36:38 +01:00
Andrey Turkin
a38cd7ac01
dbghelp: Treat const addresses as const unsigned.
...
This will prevent winedbg from spamming about __wine_dbch__default.
2007-12-26 14:02:22 +01:00
Andrew Talbot
f8198e6688
dbghelp: Cast-qual warnings fix.
2007-07-20 11:46:04 +02:00
Markus Amsler
8bc839a816
dbghelp: Speed up vector iteration by directly using for().
2007-05-15 20:19:53 +02:00
Andrew Talbot
dcb298b468
dbghelp: Exclude unused headers.
2007-05-01 11:42:24 +02:00
Andrew Talbot
099bb87feb
dbghelp: Constify some variables.
2007-04-18 13:00:57 +02:00
Peter Oberndorfer
debcf7fa32
dbghelp: Use elf load_offset passed to dwarf2_parse to relocate addresses.
...
This is needed, because symbol addresses in dwarf2 debug info are already relocated.
2007-03-16 11:35:00 +01:00
Eric Pouech
f2cfb374a4
dbghelp: Get rid of module_name in all traces (using Unicode flavor).
2007-03-13 21:02:42 +01:00
Eric Pouech
aac77c98a2
dbghelp: Added an ANSI copy of the module name (useful for next patches).
2007-02-22 11:28:53 +01:00
Marcus Meissner
e37ff84eff
dbghelp: Return when not finding the name.
2007-02-19 12:37:37 +01:00
Dmitry Timoshkov
736743dd57
dbghelp: Turn a FIXME to a WARN in order to avoid mangling the output.
2007-02-05 12:30:00 +01:00
Eric Pouech
75033503e8
dbghelp: Added ability to internal store / reload a symbol with a constant value.
...
Let dwarf and msc use this new feature.
As we also add global symbol without addresses, don't take those
constant symbols into account for searches by address.
2006-12-06 11:38:43 +01:00
Eric Pouech
4806320b48
dbghelp: In find_nearest, now return the symbol instead of its index in module->sorttable.
2006-12-06 11:37:10 +01:00
Eric Pouech
16db2566c6
dbghelp: Fixed value stored for register relative information
...
(regression spotted by Peter Oberndorfer).
2006-12-04 14:02:42 +01:00
Eric Pouech
8e7b2e0fd7
dbghelp: Get rid of long int issues on 64bit platforms.
2006-11-30 13:26:39 +01:00
Eric Pouech
3669415dd5
dbghelp: Silence typedefs children in sub program block.
2006-11-27 18:10:24 +01:00
Eric Pouech
5b61db4161
dbghelp: Correctly store the addresses of blocks.
...
They are stored internally as offsets to the start of the function
which embeds the block.
2006-11-27 17:58:44 +01:00
Eric Pouech
31f4f1b003
dbghelp: Properly handle the void type in some declarations.
2006-11-27 17:58:22 +01:00
Eric Pouech
cfd9013317
dbghelp: We can now remove the default name prefix as all the non conforming cases have been eliminated.
...
Got rid of dwarf2_find_name which is now useless.
2006-11-27 17:58:11 +01:00
Eric Pouech
305621d5cf
dbghelp: Extend support for inlined functions and handle them as generic blocks inside functions
...
(except for parameters which are converted into local variables).
Rewrote dwarf2_find_attribute so that it takes into account the
abstract origin information when available.
A+
2006-11-27 17:57:54 +01:00
Eric Pouech
497b2e4ea5
dbghelp: Be a bit more strict on where we do actually expect default names to be generated
...
(removed this feature for UDTs, structures' fields, enums, typedefs, compilands)
2006-11-27 17:57:21 +01:00
Eric Pouech
96bfe9d056
dbghelp: Add support for a label in a subprogram block.
2006-11-27 17:56:58 +01:00
Eric Pouech
8eef2de3eb
dbghelp: Register numbers in OP_piece don't need to be next to each other.
2006-11-27 17:56:49 +01:00
Eric Pouech
4202a49b75
dbghelp: Add support for deref operation in location computation.
2006-11-27 17:56:36 +01:00
Eric Pouech
e48a46b2b5
dbghelp: Add ability to add a SymTagCustom element to a function.
...
Make use of it to store the frame information for a dwarf function
(either because frame's location is a location list, or because one of
the function's variables is not properly computed at parse time).
2006-11-27 17:56:17 +01:00
Eric Pouech
0d942b3aaa
dbghelp: Function points location is now expressed as a struct location.
2006-11-27 17:55:44 +01:00
Eric Pouech
d812f8b42c
dbghelp: Added infrastructure to compute variable location at runtime (as opposed to debug info parse time).
...
Use it to send the variables depending on not known frame register at parse time.
Made just a stub for the location computation function for dwarf2.
2006-11-27 17:55:17 +01:00
Eric Pouech
20fc25bc55
dbghelp: Use the location info structure thoughout the code to handle the location of a data variable.
2006-11-27 17:54:39 +01:00
Eric Pouech
d5c4e55d36
dbghelp: Added struct location to help computing a location.
...
Make use of it in dwarf.c to handle correctly variable location computation.
Split code to handle both location with parse time computation
(current code) and yet to come run-time computation
2006-11-27 17:54:08 +01:00
Eric Pouech
848f8c41c0
dbghelp: Pass .debug_loc section info from the ELF loader to the dwarf parser.
2006-11-27 17:53:52 +01:00
Eric Pouech
1a723f237c
dbghelp: Store compiland's address in internal structures.
2006-11-27 17:49:50 +01:00
Eric Pouech
04c7c203fc
dbghelp: Simplify code with function to get section size.
2006-11-27 17:48:44 +01:00
Peter Oberndorfer
05368de685
dbghelp: Make dwarf2 parser only report file numbers when at least one compilation unit really has numbers.
2006-11-08 15:50:18 +01:00
Peter Oberndorfer
6d0948f7a6
dbghelp: Make dwarf2_parse_line_numbers handle missing line number section.
2006-11-08 15:49:46 +01:00
Peter Oberndorfer
fd2d43f131
dbghelp: Make dwarf2 parser handle file paths relative to working dir better.
2006-11-06 13:47:35 +01:00
David Anderson
c80f5181ff
dbghelp: Avoid printing too many "What the heck" messages from winedbg.
2006-10-26 13:04:52 +02:00
Eric Pouech
7c92e801aa
dbghelp: Added support for a couple of compiland's children.
2006-09-26 11:53:53 +02:00
Eric Pouech
baf8dfd8c8
dbghelp: Fix location computation when attribute has a constant form instead of a block form.
2006-09-26 11:53:40 +02:00
Eric Pouech
4432a1fa91
dbghelp: Change the definition of an attribute so that we can pass around the form.
2006-09-26 11:51:57 +02:00
Eric Pouech
f8e06dd613
dbghelp: Move the attribute union (now nameless) into a structure called attribute.
2006-09-26 11:49:36 +02:00
Eric Pouech
fa7332fd27
dbghelp: Added support for DW_OP_breg* operations in location computation.
2006-09-26 11:48:56 +02:00
Eric Pouech
6c4c64265d
dbghelp: Variables & registers.
...
- more strickling differentiation variable location between
a register, and the dereferenced address defined by a
register (and possibly an offset)
- added a parameter to symt_add_func_local (and internal symbol
data struct) to help differentiate
- fix all debug parsers to confer to this new scheme
2006-09-26 11:48:39 +02:00
Eric Pouech
5f4ac24991
dbghelp: Missing bits from previous patch about variables with constant values.
2006-08-07 15:04:16 +02:00
Eric Pouech
820acf0901
dbghelp: Properly handle variable with const value (ie without location) in dwarf code.
2006-08-03 20:17:35 +02:00
Eric Pouech
e4441d7e6f
dbghelp: Module info.
...
- now internally storing module info as a 64bit module structure
(the interest in not in the 64 bit side of things, but because
it allows storing lots of usefull information)
- fixed SymGetModuleInfo64W which wasn't returning the
LoadedPdbName field
- now filling for MSC files with the extended information
(instead of guessing it)
- reused the extended module info to store wine ELF module
information (link for map link, stabs vs dwarf symbol info)
2006-06-27 11:17:34 +02:00
Eric Pouech
e9910fee66
dbghelp: Dwarf & thunks.
...
- added the elf_is_in_thunk_area() function to locate an address
within the known thunk area of Wine's builtin modules
- now passing this thunk information to the dwarf parser so that it
can drop functions from the thunk areas (as dwarf symbols), so that
those functions can be later on marked as thunks in dbghelp
internals
2006-06-26 13:38:03 +02:00