The ddpi_module_create operation creates a Creates
a Ddpi_Module object to represent an application-executable
module and returns a descriptor that represents a handle for accessing the
module.
The ddpi_module_get_access operation
associates the Ddpi_Access object with the given Ddpi_Module object.
Because a Ddpi_Module object can contain a list of Ddpi_Access objects,
this operation will return the Ddpi_Access object that was
most recently used.
The ddpi_module_extract_C_CPP_information operation
uses the given Ddpi_Module object to locate the module or
program object, and extract all of the information needed to load a DWARF
object for C/C++.
The ddpi_module_extract_debug_info operation extracts,
from the module map, all the information needed to create the DWARF debugging
information. The extracted information is used to create ELF objects, as needed.
The ELF objects are used to create the DIEs used by the debugger. A separate Ddpi_Access object
will be created to own each Ddpi_Elf object. The list of
Ddpi_Access objects created will be owned by the given Ddpi_Module object.
Note that, if the program analysis application is using the module map, it
needs to use this operation instead of the ddpi_module_extract_C_CPP_information() operation.
The ddpi_module_list_function operation retrieves
a list of all the functions with the given name. This list will include all
the functions whose fully qualified name (which is prefixed with a C++ class
name, if applicable) or unqualified name matches the given name. The given
name could also be a portion of the fully qualified name. For example, the
given name could be Classname::function, without the function
parameters. If the given name is NULL, all of the functions in the module
will be returned. The returned list will contain Ddpi_Function objects
sorted by unqualified name.
The ddpi_module_list_variable operation rtrieves
a list of all the global variables with the given name. This list will include
all the variables whose fully qualified name (which is prefixed with a C++
class name, if applicable) or unqualified name matches the given name. If
the given name is NULL, all of the global variables in the module will be
returned. The returned list will contain Ddpi_Variable objects
sorted by unqualified name.
The ddpi_module_list_type operation retrieves
a list of all the external types with the given name. This list will include
all the types whose fully qualified name (which is prefixed with a C++ class
name, if applicable) or unqualified name matches the given name. If the given
name is NULL, all of the external types in the module will be returned. The
returned list will contain Ddpi_Type objects sorted by unqualified
name.
The ddpi_module_list_sourcefile operation
returns a list of Ddpi_Sourcefile objects whose names
match the given name. All Ddpi_Sourcefile objects
with that file name in any path will be returned. If the given name
is NULL, all of the source files in the module will be returned. Note
that if the same source file is used in more than one compilation
unit, there will be a separate Ddpi_Sourcefile object
for each compilation unit. The Ddpi_Sourcefile objects
will be sorted by the file name without the full path.
Lists all of the Ddpi_Elf objects associated with
the given Ddpi_Module object. It sets ret_elfs to an array of Ddpi_Elf objects
and sets ret_elf_count to the number of entries in the array.
The returned list will be sorted in ascending order by CU address.
The ddpi_module_find_elf_given_address operation
returns the Ddpi_Elf object that corresponds to the address
range in the loaded module that contains the given address. The user must
never deallocate the returned pointer.