Skip to content
GitLab
    • GitLab: the DevOps platform
    • Explore GitLab
    • Install GitLab
    • How GitLab compares
    • Get started
    • GitLab docs
    • GitLab Learn
  • Pricing
  • Talk to an expert
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
    • Switch to GitLab Next
    Projects Groups Topics Snippets
  • Register
  • Sign in
  • FPC Source FPC Source
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributor statistics
    • Graph
    • Compare revisions
    • Locked files
  • Issues 1.4k
    • Issues 1.4k
    • List
    • Boards
    • Service Desk
    • Milestones
    • Iterations
  • Merge requests 84
    • Merge requests 84
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Artifacts
    • Schedules
    • Test cases
  • Deployments
    • Deployments
    • Releases
  • Packages and registries
    • Packages and registries
    • Package Registry
    • Container Registry
    • Terraform modules
    • Model experiments
  • External wiki
    • External wiki
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • FPC
  • FPCFPC
  • FPC SourceFPC Source
  • Issues
  • #36017
Closed
Open
Issue created Aug 26, 2019 by FPC Admin account@fpc_adminOwner

Wrong Dwarf-3 for "type foo = OBJECT ...."

Original Reporter info from Mantis: Martin @martin_frb
  • Reporter name: Martin Friebe

Description:

An "object" (old style object), is NOT a referenced type. (like a record / allocated on the stack, or embedded)

However FPC (tested 64bit from 3.0.2 up to slightly order 3.1.1) write debug info with a DW_OP_deref.
This is only dwarf-3 (and presumingly dwarf 4)

type
  TObject3Int64     =        object a,b,c: Int64; end;

Abr: 20 Tag: 22 DW_TAG_typedef  // TObject3Int64
  --  Attr: DW_AT_name: DW_FORM_string >TObject3Int64
  --  Attr: DW_AT_type: DW_FORM_ref4 >[REF:1]

    * REF: 1
Abr: 31 Tag: 19 DW_TAG_structure_type  // TObject3Int64
  --  Attr: DW_AT_name: DW_FORM_string >TObject3Int64
  --  Attr: DW_AT_byte_size: DW_FORM_udata >24
  --  Attr: DW_AT_allocated: DW_FORM_block1 >2: 0697    // DW_OP_push_object_address, DW_OP_deref
  --  Attr: DW_AT_data_location: DW_FORM_block1 >2: 0697  // DW_OP_push_object_address, DW_OP_deref
.... members

There should be no DW_AT_data_location.
The data is at the given address, and needs no deref.

Also there should be no DW_AT_allocated

Mantis conversion info:

  • Mantis ID: 36017
  • OS: win 10
  • OS Build: 10
  • Platform: 64bit Intel
  • Version: 3.3.1
  • Fixed in version: 3.3.1
  • Fixed in revision: 43183 (#6e581789)
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Assignee
Assign to
Time tracking