Commit Graph

96 Commits

Author SHA1 Message Date
Jonas Maebe
e2e1b7b857 * changed type of bool8bit from DW_ATE_unsigned_char to
DW_ATE_boolean (was already used for bool16bit and bool32bit,
    and seems to work fine in gdb)

git-svn-id: trunk@6604 -
2007-02-22 15:29:34 +00:00
Jonas Maebe
9876d04bcd * fixed dwarf definition of longstring (avoids endless loop in
gdb when loading ref_def for longstring)

git-svn-id: trunk@6589 -
2007-02-21 19:07:45 +00:00
Jonas Maebe
41bf70cf2a * reverted setdef change which got accidentally committed in r6573
git-svn-id: trunk@6585 -
2007-02-21 11:48:54 +00:00
Jonas Maebe
badf5c70a0 * split off tf_dwarf_only_local_labels from tf_dwarf_relative_addresses
git-svn-id: trunk@6573 -
2007-02-20 09:05:03 +00:00
Jonas Maebe
59f3041e67 * completed ret-in-para support for dwarf (result was already
accessible since previous patch via the "result" name)

git-svn-id: trunk@6558 -
2007-02-19 13:00:22 +00:00
Jonas Maebe
d7b5cd4f14 * fixed debug info for pass-by-reference parameters in dwarf by
declaring them as C++-style reference types (todo: do the same
    for pass-by-reference function results)

git-svn-id: trunk@6554 -
2007-02-18 22:49:47 +00:00
Jonas Maebe
42b58affc7 + pointer to vmt for classes and objects with a vmt
git-svn-id: trunk@6544 -
2007-02-18 14:06:14 +00:00
Jonas Maebe
f81303874f * fixed the size of class instances (instance size instead of
sizeof(pointer))
  * fixed the inheritance definition of classes (refer the
    structural definition of the parent class rather than the
    associated pointer type when indicating the inheritance)

git-svn-id: trunk@6543 -
2007-02-18 12:41:52 +00:00
Jonas Maebe
90e83fcee6 * reset flag to generate dummy line info after each module
compilation, since the debuginfo class isn't destroyed/
    created all the time

git-svn-id: trunk@6493 -
2007-02-15 18:32:10 +00:00
Jonas Maebe
4d97044bba * mark whether or not procsyms are global (DW_AT_external)
git-svn-id: trunk@6314 -
2007-02-02 23:18:15 +00:00
Jonas Maebe
7a65ffac28 * use DW_FORM_ref4 instead of DW_FORM_ref_addr on
tf_dwarf_relative_addresses platforms
  * also add a file to the line info section if no code in the current
    module to make gdb happy when doing a "maintenance check-symtabs"

git-svn-id: trunk@6313 -
2007-02-02 23:16:47 +00:00
Jonas Maebe
ea6204cc56 * only mark abstract varsyms as externally visible if they
are not kept in a register and either
    a) are in a globalsymtable
    b) are marked as static object/class member
    c) are marked as "public"

git-svn-id: trunk@6302 -
2007-02-02 17:31:26 +00:00
Jonas Maebe
bf38367b69 * if a module has no procedure/function/init/final code,
add a dummy entry to the lineinfo and finish it properly
    (needed for at least the Darwin linker)

git-svn-id: trunk@6301 -
2007-02-02 17:23:42 +00:00
Jonas Maebe
d39d06ea01 * initial fixes if tf_dwarf_relative_addresses is set:
* store dataptr as a relative offsets instead of absolute addresses
    * only place local (address) labels inside the debug_info section
     -> also always write debuginfo of defs used from another unit
  * don't use DW_LNS_advance_pc on Darwin, because its assembler doesn't
    support the .uleb128 pseudo-opcode -> impossible to store the difference
    between two labels as an uleb128
  ->  basic functionality of dwarf2 debug info now works on Darwin. Not
      yet workingon Darwin: accessing globals of another compilation unit.

git-svn-id: trunk@6300 -
2007-02-02 16:00:47 +00:00
Jonas Maebe
d99a616167 * simplified use_64bit_headers code to avoid if-statement blowups
when adding tf_dwarf_relative_addresses support

git-svn-id: trunk@6299 -
2007-02-02 14:36:56 +00:00
Jonas Maebe
3067415fe4 * replaced hardcoded '.L' label prefixes with target_asm.labelprefix
git-svn-id: trunk@6295 -
2007-02-02 10:38:46 +00:00
tom_at_work
a0813b42bf * fixed DWARF debug info for powerpc64/linux, correcting the procedure entry symbol (must be the dotted symbol, not the function descriptor location, otherwise gdb cannot find locals
git-svn-id: trunk@6242 -
2007-01-28 12:12:12 +00:00
pierre
7145c25260 * avoid level 2 comments
git-svn-id: trunk@6014 -
2007-01-17 05:40:35 +00:00
peter
91dbd27a42 * cleanup deleting of defs
git-svn-id: trunk@5902 -
2007-01-11 20:46:57 +00:00
Jonas Maebe
c54e49d428 * fixed range check errors
git-svn-id: trunk@5432 -
2006-11-20 13:15:30 +00:00
Marc Weustink
6b48dc8143 * fixed lineinfo reference
git-svn-id: trunk@5418 -
2006-11-18 02:05:54 +00:00
Marc Weustink
1a5c19fdcf * reverted to defines for 64bit targets
* added 64bit header support

git-svn-id: trunk@5417 -
2006-11-18 00:50:46 +00:00
Marc Weustink
cfbedf5a10 * added a temp fix for dwarf64 debug generation
git-svn-id: trunk@5412 -
2006-11-16 23:56:08 +00:00
tom_at_work
9905e6d7ff * never generate 64 bit offsets/sizes in DWARF debug info for now
git-svn-id: trunk@5410 -
2006-11-16 22:12:30 +00:00
peter
9ae8e9fa21 * refactor tclassheader in tvmtbuilder and tvmtwriter
* fix rtti generation
  * rtti is now written at the end of a module when all info is available,
    this prevents some duplicate rtti entries cause by inheritance

git-svn-id: trunk@5363 -
2006-11-13 22:03:17 +00:00
peter
0557ddc342 * removed typed const, it is now handled by staticvarsym
* globalvarsym renamed to staticvarsym
  * fixed invalid regvar use in init when the finalize also uses the var

git-svn-id: trunk@5290 -
2006-11-08 21:04:22 +00:00
peter
3cae449fda * moved rtti to ncgrtti
git-svn-id: trunk@5219 -
2006-11-04 10:43:27 +00:00
peter
e17b424e28 * refactor procsym procdef list
git-svn-id: trunk@5210 -
2006-11-03 18:44:46 +00:00
peter
658c46b903 * remove tdictionary and tindexarray
* symtables based on TFPHashObjectList and TFPObjectList
  * rename torddef.typ to torddef.ordtype
  * rename tfloatdef.typ to tfloatdef.floattype
  * rename tdef.deftype to tdef.typ
  * remove obsolete browser code, browcol is kept so the ide
    can still be compiled

git-svn-id: trunk@5192 -
2006-11-03 00:30:30 +00:00
peter
1684a6fc32 * replaced tdictionary with tfphashlist
git-svn-id: trunk@5148 -
2006-11-01 14:26:50 +00:00
peter
05183ac829 * AsmSymbolDict changed to FPHashObjectList
git-svn-id: trunk@5139 -
2006-11-01 00:22:13 +00:00
peter
136d3e8d46 * refactor implemented interfaces
git-svn-id: trunk@5134 -
2006-10-31 22:38:49 +00:00
peter
cb246eb781 * Remove dos,strings units, use SysUtils instead
* replace split* functions with Extract* functions
  * Add Directory caching

git-svn-id: trunk@5102 -
2006-10-30 23:29:35 +00:00
florian
ef7bd58c54 * germanism removed (aktfilepos -> current_filepos)
git-svn-id: trunk@5099 -
2006-10-30 22:37:31 +00:00
peter
070b86a512 * order of named sections added
* fix debugstart and debugend labels

git-svn-id: trunk@5098 -
2006-10-30 22:34:22 +00:00
florian
85d63d9fa9 * settings refactored
git-svn-id: trunk@5094 -
2006-10-30 18:02:58 +00:00
peter
3078a1927f * remove ttype
* rename old ttype variables *type to *def
  * rename resulttypepass to pass_typecheck
  * rename pass_2 to pass_generate_code

git-svn-id: trunk@5077 -
2006-10-29 22:19:39 +00:00
peter
0f6355e805 * fix property overriding
git-svn-id: trunk@5045 -
2006-10-28 20:35:53 +00:00
Marc Weustink
31090d8736 * generate realnames for syms in -gw3
git-svn-id: trunk@4833 -
2006-10-08 16:27:03 +00:00
Marc Weustink
88e00bd264 * removed write depend def, write only defs when needed
git-svn-id: trunk@4816 -
2006-10-06 23:54:38 +00:00
peter
b66b8ed495 * dwarf fixes
* reuse of global dwarf entries

git-svn-id: trunk@4780 -
2006-10-04 10:18:14 +00:00
Marc Weustink
48340d291e * splitup dwarf2/dwarf3
* changed cpu64bit define into isdwarf64 boolean
* generate info for methods

git-svn-id: trunk@4759 -
2006-09-30 15:21:17 +00:00
Marc Weustink
9000d5c578 + Added dwarf .debug_line info
-This line, and those below, will be ignored--

M    compiler/dbgdwarf.pas
M    compiler/aggas.pas

git-svn-id: trunk@4607 -
2006-09-10 17:59:18 +00:00
florian
9e66674ff9 + first part of qwordbool implementation
git-svn-id: trunk@4462 -
2006-08-19 23:16:17 +00:00
Jonas Maebe
eccbc78e04 + support for bitpacked arrays:
+ use {$bitpacking on/+} to change the meaning of "packed"
      into "bitpacked" for arrays. This is the default for MacPas.
      You can also define individual arrays as "bitpacked", but
      this is not encouraged since this keyword is not known by
      other compilers and therefore makes your code unportable.
    + pack(unpackedarray,index,packedarray) to pack
      length(packedarray) elements starting at
      unpackedarray[index] into packedarray.
    + unpack(packedarray,unpackedarray,index) to unpack
      packedarray into unpackedarray, with the first
      element being stored at unpackedarray[index]
  * todo:
    * "open packed arrays" and rtti for packed arrays are not
      yet supported
    * gdb does not properly support bitpacked arrays

git-svn-id: trunk@4449 -
2006-08-19 12:54:12 +00:00
florian
a7b5f78daf * fixed crash in dwarf generation when generating info for empty default parameter sets
git-svn-id: trunk@4140 -
2006-07-10 18:14:52 +00:00
florian
863a701fd2 * check if we've to write the basedef for enums when writing debug info
git-svn-id: trunk@4130 -
2006-07-08 18:47:06 +00:00
peter
dfd84c6fd3 * leb128 gets always a 64bit int
* fixed sleb128 encode

git-svn-id: trunk@3060 -
2006-03-27 13:42:06 +00:00
peter
0ec2921bbe * split newasmsymbol to refasmsymbol and defineasmsymbol
git-svn-id: trunk@3057 -
2006-03-27 11:45:18 +00:00
peter
95be416b9d * don't allow stringconst+integer
* change booleans in arraydef to set
  * set option in arraydef to indicate a constant string so
    a nicer type can be shown instead of array[0..x] of char

git-svn-id: trunk@3051 -
2006-03-27 07:22:02 +00:00