Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
[mc] Fix memory leak in MC_get_memory_regions()
[simgrid.git] / src / mc / mc_location.h
index 289cb73..1f82a16 100644 (file)
 namespace simgrid {
 namespace mc {
 
-typedef struct
-{
-  uint8_t atom;
-  std::uint64_t number;
-  std::uint64_t number2;
-  std::uint64_t offset;
-} DwarfInstruction;
+typedef std::vector<Dwarf_Op> DwarfExpression;
 
-typedef std::vector<DwarfInstruction> DwarfExpression;
 
 /** \brief A DWARF expression with optional validity contraints */
 class LocationListEntry {
@@ -108,6 +101,10 @@ void mc_dwarf_resolve_locations(
   void* frame_pointer_address, simgrid::mc::AddressSpace* address_space,
   int process_index);
 
+XBT_PRIVATE void mc_dwarf_location_list_init(
+  simgrid::mc::LocationList*, simgrid::mc::ObjectInformation* info, Dwarf_Die* die,
+  Dwarf_Attribute* attr);
+
 #define MC_EXPRESSION_STACK_SIZE 64
 
 #define MC_EXPRESSION_OK 0
@@ -129,9 +126,8 @@ typedef struct s_mc_expression_state {
   int process_index;
 } s_mc_expression_state_t, *mc_expression_state_t;
 
-int mc_dwarf_execute_expression(
-  size_t n, const simgrid::mc::DwarfInstruction* ops, mc_expression_state_t state);
-
+XBT_PUBLIC(int) mc_dwarf_execute_expression(
+  size_t n, const Dwarf_Op* ops, mc_expression_state_t state);
 void* mc_find_frame_base(
   simgrid::mc::Frame* frame, simgrid::mc::ObjectInformation* object_info, unw_cursor_t* unw_cursor);