Skip to content

Conversation

mulyukovaaa
Copy link

No description provided.

@mulyukovaaa
Copy link
Author

In the PPExtInitTypeTagsRecursively method, I added DIType generation. This type is marked as retain and then processed by clang itself.
Now, in the debug_info section, there are types for which there is a "create_spec" function.
For example, if the pp-linked.c file did not have an sd variable with the type Simple.Decorator.Simple.Circle, then previously this type would not have been included in debug_info.

after:
<2><28d>: номер аббревиатуры: 11 (DW_TAG_structure_type)
<28e> DW_AT_name : (indexed string: 0x2a): __pp_struct_Simple__Decorator____pp_struct_Decorator__Simple____pp_struct_Simple__Circle
<28f> DW_AT_byte_size : 32
<290> DW_AT_decl_file : 0
<291> DW_AT_decl_line : 65
<2><2a6>: номер аббревиатуры: 11 (DW_TAG_structure_type)
<2a7> DW_AT_name : (indexed string: 0x29): __pp_struct_Decorator__Simple____pp_struct_Simple__Circle
<2a8> DW_AT_byte_size : 24
<2a9> DW_AT_decl_file : 0
<2aa> DW_AT_decl_line : 65

of course, with a full indication of the type to be dereferenced. variable sd is not exist the pp-linked.c file.
(lldb) p (struct __pp_struct_Simple__Decorator____pp_struct_Decorator__Simple____pp_struct_Simple__Circle)s_ptr
(struct __pp_struct_Simple__Decorator____pp_struct_Decorator__Simple____pp_struct_Simple__Circle) {
__pp_head = (a = 0, __pp_specialization_type = 1)
__pp_tail = {
__pp_head = (b = 0, __pp_specialization_type = 1)
__pp_tail = {
__pp_head = (a = 0, __pp_specialization_type = 2)
__pp_tail = (r = 0)
}
}
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant