Commit Graph

251 Commits

Author SHA1 Message Date
nickysn
5bba79afb3 * use create_int_dataptr_unaligned instead of create_pint_unaligned in TDebugInfoDwarf.appendsym_absolute
git-svn-id: trunk@34837 -
2016-11-07 15:41:44 +00:00
nickysn
163d54c33e * emit a sizeint-sized string length for long string constants in the DWARF
debug info, instead of using create_pint

git-svn-id: trunk@34649 -
2016-10-07 22:36:48 +00:00
yury
db590da1e6 * Added a new debug option switch -godwarfcpp - Simulate C++ debug information in DWARF. It is more correct way to workaround LLDB issues than in r34558. This option can be used for debuggers, which does not support Pascal correctly.
git-svn-id: trunk@34562 -
2016-09-26 13:05:17 +00:00
yury
c36faacd57 * dwarf: Internal option to generate a LLDB compatible debug info. It is enabled for the Android targets.
git-svn-id: trunk@34558 -
2016-09-23 15:51:55 +00:00
svenbarth
3a9f8e88fd * don't write or reference debug information for a unit if it belongs to a/another package
git-svn-id: trunk@34382 -
2016-08-26 15:09:24 +00:00
Jonas Maebe
aa1be3276f - removed default value of _typ parameter of TAsmData.(Weak)RefAsmSymbol():
it was AT_NONE, which is invalid and should never be used
  * explicitly pass the correct value for all calls to those methods elsewhere
    in the compiler

git-svn-id: trunk@34250 -
2016-08-05 07:09:16 +00:00
Jonas Maebe
1cb8c0d00c * specify the def of assembler level symbols defined via
tasmdata.DefineAsmSymbol() and all routines that call it
   o will be used to automatically generate AB_INDIRECT sybols when
     necessary

git-svn-id: trunk@34164 -
2016-07-20 20:52:59 +00:00
Jonas Maebe
3177199d94 * changed all debug info labels from AT_DATA to AT_METADATA
git-svn-id: trunk@34150 -
2016-07-19 11:57:52 +00:00
florian
9daa4bd48d * always generate unaligned pointer entries (so .4bytes instead of .long is generated) in dwarf debugging info
git-svn-id: trunk@33782 -
2016-05-24 18:58:01 +00:00
florian
35b18fbf85 * change address related variables from aint to PInt to avoid range check errors
git-svn-id: trunk@33701 -
2016-05-16 19:24:09 +00:00
Jonas Maebe
953c47dd97 - disabled DWARF (a)ranges for Darwin, it's not supported/used there
git-svn-id: trunk@33479 -
2016-04-10 21:16:55 +00:00
florian
90b284e169 + generate .debug_aranges sections for dwarf debug info: enables faster address to debug info translation
git-svn-id: trunk@33454 -
2016-04-08 20:19:59 +00:00
Jonas Maebe
d44100448c * add support in the debug info for the dummy s128bit/u128bit types added
in r32735 (mantis #29259)

git-svn-id: trunk@32758 -
2015-12-27 11:45:24 +00:00
pierre
6d0c5b234b Avoid unsupported .uleb128 with diff of two sympbols for native solaris assembler
git-svn-id: trunk@32200 -
2015-10-30 13:38:03 +00:00
Jonas Maebe
91be1d0f2d * removed the DWARF label fields from tdef/tobjectdef, and dynamically
allocate them only while necessary
   o also unified the conditions under which we allocate a separate
     struct label

git-svn-id: trunk@32045 -
2015-10-13 15:59:03 +00:00
Jonas Maebe
add015f808 * ensure that the dwarf file table contains an entry if the current unit
contains any code, even if we cannot generate any debug info for that
    code (because the default file is file number 1, and if that table is
    empty some gdb versions crash)

git-svn-id: trunk@31335 -
2015-08-17 08:47:38 +00:00
Jonas Maebe
687bb15299 * renamed getdatalabel() to getglobaldatalabel
git-svn-id: branches/hlcgllvm@30336 -
2015-03-27 21:25:34 +00:00
Jonas Maebe
bd203a5b57 * synchronised with trunk till r30240
git-svn-id: branches/hlcgllvm@30241 -
2015-03-15 19:44:58 +00:00
Jonas Maebe
1e227f78fe * factored out the check for whether we have to generate dotted function
names, and disabled them for ppc64 ELFv2
  * disabling those also disables the function descriptors, so use the
    _CALL_ELF compiler variable to check whether there is in fact a
    function descriptor

git-svn-id: trunk@30196 -
2015-03-14 18:35:25 +00:00
Jonas Maebe
67b8aceaee * synchronized with privatetrunk till r30095
git-svn-id: branches/hlcgllvm@30101 -
2015-03-05 20:32:15 +00:00
pierre
3506767e8d Generate mimnimal DWARF debug information for non-multithreaded thread variables
git-svn-id: trunk@29150 -
2014-11-26 09:59:13 +00:00
joost
7c9d32b3ce * Dwarf: Write zero as line-nr for instructions with no real corresponding
line. This way a debugger will not show invalid line-information in this
   case.
 * Dwarf: Set IsStatement false for line-info for instructions that do not
   correspond to the start of a line/instruction.

git-svn-id: trunk@28824 -
2014-10-15 20:45:33 +00:00
joost
030885727e * Do not use sym.realname but sym.name in the mangledname for the Dwarf-3 debuginfo. This makes it possible to mix Dwarf-2 and Dwarf-3 debug info into one executable.
git-svn-id: trunk@28576 -
2014-09-01 16:55:10 +00:00
Jonas Maebe
b0ff41406a * grouped all tai_real* types into a single tai_realconst type,
to free up space for more ait_* types in taitype (can't have
    more than 32 because they have to fit in a small set)
   o factored out writing of floating point numbers as an array of
     byte in the external assemblers

git-svn-id: branches/hlcgllvm@28105 -
2014-07-01 16:29:58 +00:00
florian
4d5119bf1c * fixes several issues which cause warnings by the dfa code when using it to detect uninitialized variables
git-svn-id: trunk@26161 -
2013-12-01 17:02:08 +00:00
Jonas Maebe
5e0589f0a5 * fixed debug information for strings (index starts from 1, not from 0)
(mantis #25226)

git-svn-id: trunk@26140 -
2013-11-26 19:59:53 +00:00
nickysn
90a092e585 + added enum Tdwarf_addr with the values of DW_AT_address_class (to be used for
the i8086-msdos debug info)

git-svn-id: trunk@25871 -
2013-10-27 18:40:59 +00:00
Jonas Maebe
936bd3c902 * fixed definitions/uses of asmsymbols: always explicitly define local
symbols as local, don't use RefAsmSymbol for symbols that may still
    be defined/used as local symbols later

git-svn-id: trunk@25318 -
2013-08-21 09:49:07 +00:00
florian
38f3448e22 * applied patch by Cyrax to fix #24722, revertes partially r25054 which was wrong
git-svn-id: trunk@25282 -
2013-08-18 16:05:43 +00:00
florian
2cdb4adf39 + tai_const.Create_type_name and tai_const.Create_pint_unaligned
* some locations fixed, where dwarf generated assembler for aligned data accidently

git-svn-id: trunk@25054 -
2013-07-07 15:09:36 +00:00
pierre
d956808080 Fix bug introduced by myself for win32 dwarf info generation Bug #23365 and 23330
git-svn-id: trunk@23046 -
2012-11-22 13:49:21 +00:00
florian
65aa6fb379 * make check for registerhi more usefull
git-svn-id: trunk@22573 -
2012-10-07 18:47:13 +00:00
pierre
a1a171d7e8 Fix problems introduced by unaligned patch rev 22516 for 64bit systems
git-svn-id: trunk@22529 -
2012-10-03 21:11:21 +00:00
pierre
a34c1ff22d Use only unaligned constants in dwarf debug info as specified by standard
git-svn-id: trunk@22516 -
2012-10-02 14:00:03 +00:00
pierre
fcaff0489c * psub.pas : translate tregister for registerhi also
(avoids imaginary register number in "# Var I in register .." assembler comments.
  * dbgdwarf.pas : Support register variables as register pairs.
      Does not yet handle case of changing registers.
  * symsym.pas : add currentregloc field to tabstractnormalvarsym class,
     to be able to track changing registers used for a given variable.
  * aasmtai.pas : Update currentregloc field of tai_varloc.create sym parameter.
  * ncgutil.pas : Only generate a tai_varloc if the new registers are different for the variable.

git-svn-id: trunk@22508 -
2012-10-01 14:21:13 +00:00
Jonas Maebe
1f2578077c * small correction to previous commit: the offset of DW_OP_bregx is signed
(since it's a hardcoded 0, that doesn't matter here in practice though)

git-svn-id: trunk@22177 -
2012-08-22 18:42:35 +00:00
Jonas Maebe
c8986f34fb * fixed debug information for call-by-reference parameters whose address
is located in a register (mantis #22399)

git-svn-id: trunk@22176 -
2012-08-22 18:21:37 +00:00
Jonas Maebe
14cfe770a4 * replaced most (if not all) remaining fields/parameters in the compiler
that deal with paths/filenames with TPathStr (= ansistring) to prevent
    cutting off long paths (no change in speed when compiling the compiler,
    1% extra memory usage)

git-svn-id: trunk@21120 -
2012-04-29 17:36:23 +00:00
Jonas Maebe
aee5380ae0 * merged trunk up to r20882
o support for the new codepage-aware ansistrings in the jvm branch
   o empty ansistrings are now always represented by a nil pointer rather than
     by an empty string, because an empty string also has a code page which
     can confuse code (although this will make ansistrings harder to use
     in Java code)
   o more string helpers code shared between the general and jvm rtl
   o support for indexbyte/word in the jvm rtl (warning: first parameter
     is an open array rather than an untyped parameter there, so
     indexchar(pcharvar^,10,0) will be equivalent to
     indexchar[pcharvar^],10,0) there, which is different from what is
     intended; changing it to an untyped parameter wouldn't help though)
   o default() support is not yet complete
   o calling fpcres is currently broken due to limitations in
     sysutils.executeprocess() regarding handling unix quoting and
     the compiler using the same command lines for scripts and directly
     calling external programs
   o compiling the Java compiler currently requires adding ALLOW_WARNINGS=1
     to the make command line

git-svn-id: branches/jvmbackend@20887 -
2012-04-15 15:54:10 +00:00
joost
bbbc85bbf6 * Use DW_TAG_class_type for classes instead of DW_TAG_structure_type
git-svn-id: trunk@19481 -
2011-10-13 16:21:49 +00:00
joost
853f35757d * Use the same logic for Dwarf-3 and Dwarf-2 output regarding symbol names. Solves problems resolving self in gdb and Dwarf-3.
git-svn-id: trunk@19326 -
2011-10-02 16:08:56 +00:00
joost
cd0b2e5288 * Use DW_OP_deref instead of DW_OP_push_object_deref. The latter is not recognized properly by gdb
git-svn-id: trunk@19325 -
2011-10-02 08:41:57 +00:00
joost
ce01b15c49 * Generate proper Dwarf-debuginfo for DW_AT_vtable_elem_location, containing
a Dwarf-block that evaluates the location of a method within the vmt. 
   The vmtindex as it was used is is only used by older GCC versions and does
   not work with a Pascal VMT.

git-svn-id: trunk@19253 -
2011-09-27 15:48:52 +00:00
Jonas Maebe
67c2c7c166 * renamed cchartype to cansichartype
git-svn-id: branches/jvmbackend@18779 -
2011-08-20 08:35:24 +00:00
Jonas Maebe
28740dce2d - removed extra "fordefinition" parameter again from tprocdef.mangledname(),
since the definition-specific adorning of JVM mangled names is Jasmin-
    specific, and such code has no place in symdef
  * moved code to adorn JVM mangled names for Jasmin definitions to agjasmin

git-svn-id: branches/jvmbackend@18346 -
2011-08-20 07:49:31 +00:00
Jonas Maebe
0ee702b3a2 * tprocdef.mangledname now gets an extra boolean parameter indicating
whether the mangled name is for defining a symbol, or for referencing
    it later (e.g. for a call or load of its address). The reason is that
    on the JVM both cases are different.
  + jvmdef unit to encode types according to the JVM rules
  + tprocdef.jvmmangledname() to encode a procdef's JVM mangled name
    (the common part of defining/referencing it; tprocdef.mangledname
     afterwards adorns it as required)

git-svn-id: branches/jvmbackend@18288 -
2011-08-20 07:22:00 +00:00
florian
570f3c4b39 * merges recent class helper fixes by Sven Barth
git-svn-id: trunk@17887 -
2011-06-30 18:54:46 +00:00
florian
d35d1ed357 + initial support for pascal booleans with sizes 2, 4 and 8
git-svn-id: branches/pasboolxx@17836 -
2011-06-26 15:02:37 +00:00
svenbarth
35b47e491c Rebase to revision 17306
git-svn-id: branches/svenbarth/classhelpers@17314 -
2011-04-13 10:04:14 +00:00
florian
4d19f6c532 * patch by Jeppe Johansen to be able to generate debug info if an rtl without variant support is used, resolves #18483
git-svn-id: trunk@17300 -
2011-04-10 21:11:03 +00:00