Project

General

Profile

Bug #6895

ctf_add_member could better handle bitfields

Added by Robert Mustacchi over 3 years ago. Updated 10 months ago.

Status:
Closed
Priority:
Normal
Category:
lib - userland libraries
Start date:
2016-04-11
Due date:
% Done:

100%

Estimated time:
Difficulty:
Medium
Tags:

Description

The ctf_add_member always tries to use the underlying size of a type. However, the byte size of a type as returned from ctf_type_size() is not necessarily correct. Whenever we're working with integers we need to explicitly use the bit size encoded in the integer's encoding to determine how large this member is. We still respect the same offset rules as we previously did.


Related issues

Related to illumos gate - Feature #6885: CTF Everywhere Part 1Closed2016-04-11

Actions

History

#1

Updated by Robert Mustacchi over 3 years ago

#2

Updated by Electric Monk 10 months ago

  • Status changed from New to Closed

git commit bc1f688b4872ace323eaddbb1a6365d054e7bf56

commit  bc1f688b4872ace323eaddbb1a6365d054e7bf56
Author: Robert Mustacchi <rm@joyent.com>
Date:   2019-02-11T17:40:04.000Z

    6885 CTF Everywhere Part 1
    6886 Want ctfdiff
    6887 ctfdump should be written in terms of libctf
    6888 ctfmerge should be implemented in terms of libctf
    6889 ctfconvert should be implemented in terms of libctf
    6890 Want general workq
    6891 Want general mergeq
    6892 ctf_add_encoded assigns() incorrect byte size to types
    6893 ctf_add_{struct,union,enum} can reuse forwards
    6894 ctf_add_{struct,union,enum} occasionally forget to dirty the ctf_file_t
    6895 ctf_add_member could better handle bitfields
    6896 ctf_type_size() reports wrong size for forwards
    6897 Want libctf ctf_kind_name() function
    6898 Want libctf function to set struct/union size
    Portions contributed by: John Levon <john.levon@joyent.com>
    Portions contributed by: Richard Lowe <richlowe@richlowe.net>
    Reviewed by: John Levon <john.levon@joyent.com>
    Reviewed by: Andy Fiddaman <andy@omniosce.org>
    Reviewed by: Gergő Doma <domag02@gmail.com>
    Approved by: Dan McDonald <danmcd@joyent.com>

Also available in: Atom PDF