Skip to content

Adding debug-info at the AST parsing stage #5

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 3 commits into
base: pp-extension-v2
Choose a base branch
from

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