Commit Graph

295 Commits

Author SHA1 Message Date
Jeppe Johansen
1201cc024e * Add riscv-embedded to targets that don't support non-constant leb128's.
git-svn-id: trunk@43851 -
2020-01-03 17:03:38 +00:00
svenbarth
e7715023da * fix for Mantis #35567: use the correct type for the size type of a dynamic array
git-svn-id: trunk@43264 -
2019-10-19 15:41:29 +00:00
florian
6e58178963 * do not write DW_AT_allocated and DW_AT_data_location tags for old style objects and cppobjects, resolves #36017
git-svn-id: trunk@43183 -
2019-10-13 10:06:48 +00:00
Jonas Maebe
3e11f1b2fe * fix length calculation of winlike widestrings in Dwarf 3 (patch by
Martin Friebe, mantis #35566)

git-svn-id: trunk@43182 -
2019-10-13 09:31:08 +00:00
Jonas Maebe
bdcda8660e * fix Dwarf 3 array location broken in r43171 (fix by Martin Friebe,
mantis #36144)

git-svn-id: trunk@43181 -
2019-10-13 07:37:42 +00:00
Jonas Maebe
6c29ecbd1c * moved array stride back to array entry (mantis #36144)
git-svn-id: trunk@43171 -
2019-10-12 12:25:07 +00:00
florian
8ecdb2e9ca + dwarf support for tls threadvars
git-svn-id: trunk@43134 -
2019-10-05 20:48:31 +00:00
Jeppe Johansen
ff3372567f - Applied patch by Christo Crause from #33914
git-svn-id: trunk@42493 -
2019-07-25 13:24:10 +00:00
svenbarth
755e271b4e * fix for Mantis #35566 by applying patch by Martin Friebe: correctly dereference the 32-bit length value for Windows Widestrings
git-svn-id: trunk@42087 -
2019-05-16 20:56:18 +00:00
Jonas Maebe
281b3ad276 * fix case completeness and unreachable code warnings in compiler that would
be introduced by the next commit

git-svn-id: trunk@42046 -
2019-05-12 14:29:03 +00:00
svenbarth
faaa9f94fa * addstringdef() now correctly declares the debug information for a Windows WideString, so use that instead of treating it merely like a PWideChar
git-svn-id: trunk@42039 -
2019-05-11 15:38:59 +00:00
svenbarth
e769233436 * fix for Mantis #35386: use the correct size for the string's length (SizeInt for Ansi-/UnicodeString and DWord for WideString)
git-svn-id: trunk@42038 -
2019-05-11 15:38:56 +00:00
svenbarth
1349f1db03 * fix for Mantis #35359: only WideString counts the size in Byte, UnicodeString uses the size in WideChars
git-svn-id: trunk@42037 -
2019-05-11 15:38:51 +00:00
Jonas Maebe
0b61b5d4cf * added extra header to ppu inside a subsection, so we won't run into
trouble when the ppu version hits 255
  * also moved several ppu flags to a set inside that section

git-svn-id: trunk@41846 -
2019-04-06 21:28:43 +00:00
yury
ad269dedd4 * If ds_dwarf_cpp (C++ emulation) is enabled, add DW_AT_linkage_name attribute for methods.
LLDB uses it to display fully qualified method names. Add a simple C++ mangled name without params to achieve at least "Class::Method()" instead of just "Method" in LLDB.

git-svn-id: trunk@40498 -
2018-12-07 20:55:50 +00:00
yury
f0d42db82d * When ds_dwarf_cpp option is enabled, use dwarf2 implementation of strings debug info. It makes LLDB happy.
git-svn-id: trunk@40492 -
2018-12-07 16:14:02 +00:00
Jonas Maebe
758a8dd34a * fixed dwarf debug info after r40398 (mantis #34622)
git-svn-id: trunk@40421 -
2018-11-29 23:21:15 +00:00
pierre
8f7707d474 Use correct field for sl_absolutetype or sl_typeconv ppropaccesslistitem type (revealed by compilation with -CriotR)
git-svn-id: trunk@40109 -
2018-10-31 14:43:18 +00:00
pierre
92acd38f40 Fix for bug report #34380
git-svn-id: trunk@39986 -
2018-10-18 20:21:54 +00:00
Jonas Maebe
0b246f3dbd * converted Boolean8 to an internal type, and mapped Boolean to the
new internal pasbool1(type) (part of mantis #34411)
   o apply the _Bool x86-64 parameter passing rules only to pasbool1

git-svn-id: trunk@39949 -
2018-10-16 21:14:18 +00:00
florian
f48203b66f * generate no uleb with differences for line information
git-svn-id: branches/laksen/riscv_new@39490 -
2018-07-22 19:43:47 +00:00
nickysn
052da5c921 * use DW_OP_reg0..DW_OP_reg31 instead of DW_OP_regx in TDebugInfoDwarf.append_seg_reg
in case the dwarf register number is 31 or smaller

git-svn-id: trunk@39131 -
2018-05-28 14:21:53 +00:00
nickysn
ad96cf758b + emit a DW_AT_address_class dwarf attribute on i8086 for procdefs, indicating
their call model (near or far)

git-svn-id: trunk@39120 -
2018-05-25 20:03:15 +00:00
nickysn
6bd99b65bf + emit DW_AT_frame_base dwarf attributes on i8086. Even though the Watcom
Debugger doesn't require them (it uses BP as the frame register by default),
  the dwarf spec requires that we emit them on i8086, because we also use
  DW_OP_fbreg on i8086.

git-svn-id: trunk@39112 -
2018-05-24 22:49:12 +00:00
nickysn
c5fe78201c + emit DW_OP_bregx dwarf ops for local variables and parameters, relative to BP
on i8086. This fixes Watcom Debugger not showing them right in memory models,
  where DS<>SS (Watcom seems to ignore the DW_AT_segment attribute for register
  relative variables, even though we emit it correctly :/ )

git-svn-id: trunk@39111 -
2018-05-24 22:27:11 +00:00
nickysn
855c810c09 + emit a DW_AT_WATCOM_memory_model dwarf attribute, when compiling for i8086
git-svn-id: trunk@39110 -
2018-05-24 21:59:50 +00:00
nickysn
87e1fa8fc7 + added enum with the values for DW_AT_WATCOM_memory_model
git-svn-id: trunk@39109 -
2018-05-24 21:50:55 +00:00
nickysn
dc12d4d789 + added constants with the watcom dwarf attribute extensions
git-svn-id: trunk@39108 -
2018-05-24 21:49:28 +00:00
nickysn
749872aaf7 + generate DW_AT_segment dwarf attribute for local variables and parameters on i8086
git-svn-id: trunk@39107 -
2018-05-24 21:30:37 +00:00
nickysn
217c75f84e + generate dwarf DW_AT_address_class attributes for pointer types on i8086
git-svn-id: trunk@39106 -
2018-05-24 20:22:59 +00:00
nickysn
76fb8c3afd * fix for dwarf debug info generation of localsym vars with offset (thx Pierre for spotting this)
git-svn-id: trunk@39104 -
2018-05-24 16:31:01 +00:00
nickysn
69fbf0e0d8 * use unaligned constants, when writing the final dwarf arange record on i8086
git-svn-id: trunk@39103 -
2018-05-24 15:43:02 +00:00
nickysn
5417eb043d * fix for the encoding of dwarf debug info of local variables, whose base is a
register that has a dwarf register number higher than 31

git-svn-id: trunk@39099 -
2018-05-23 15:58:51 +00:00
nickysn
308e439d5d + emit segment information in the dwarf debug info for static variables on i8086
git-svn-id: trunk@39082 -
2018-05-21 15:30:58 +00:00
nickysn
76ff01beda + also emit the non-standard DW_LNE_set_segment watcom extended opcode in the
dwarf line info on i8086

git-svn-id: trunk@39081 -
2018-05-21 14:54:11 +00:00
nickysn
9d167dbd2a + emit DW_AT_segment attributes in the dwarf debug info for subroutines
(DW_TAG_subprogram) on i8086

git-svn-id: trunk@39080 -
2018-05-21 14:40:39 +00:00
nickysn
4aa66d9033 * emit a 32-bit offset for DW_FORM_ref_addr on i8086 (Watcom compatibility)
git-svn-id: trunk@39077 -
2018-05-21 01:36:23 +00:00
nickysn
d1cdd8be7c * do not emit padding bytes after the dwarf arange header on i8086 for
compatibility with Open Watcom (also, the dwarf spec is not very clear about
  the alignment requirements on segmented architectures, so that's why we do
  this by default, instead of putting it behind a -go debug switch)

git-svn-id: trunk@39075 -
2018-05-20 22:50:46 +00:00
nickysn
1a2f364e68 * use 32-bit address_size in the dwarf arange sections on i8086 (for Open Watcom
compatibility)

git-svn-id: trunk@39074 -
2018-05-20 21:59:32 +00:00
nickysn
0efb86518b + emit dwarf segment information on i8086 in the .debug_aranges section
git-svn-id: trunk@39073 -
2018-05-20 21:28:26 +00:00
nickysn
651571c00f + added comments, indicating where we emit the address_size and segment_size
fields of the dwarf arange header

git-svn-id: trunk@39072 -
2018-05-20 21:21:26 +00:00
nickysn
b048da4284 + added the non-standard Open Watcom DWARF extension DW_LNE_set_segment extended
opcode constant; not emitted yet; will be needed on i8086

git-svn-id: trunk@39048 -
2018-05-20 12:25:03 +00:00
nickysn
600b460ecd + added new debug output option -godwarfomflinnum for generating line number
information in OMF LINNUM records, in addition to the DWARF debug information.
  This enables source level debugging on i8086-msdos, when using the Open Watcom
  Debugger, provided the source was compiled with this option and the external
  linker (wlink) was used for generating the executable (the internal linker
  does not yet support generating debug information).

git-svn-id: trunk@39014 -
2018-05-17 14:38:50 +00:00
pierre
e7d724981c Replace $notes off/on by $push/$notes off/$pop to avoid getting note messages if notes are not on at start of unit compilation
git-svn-id: trunk@38718 -
2018-04-09 09:45:19 +00:00
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