A
lgorithmique
N
umérique
D
istribuée
Public GIT Repository
projects
/
simgrid.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'master' of scm.gforge.inria.fr:/gitroot/simgrid/simgrid
[simgrid.git]
/
src
/
mc
/
mc_object_info.h
diff --git
a/src/mc/mc_object_info.h
b/src/mc/mc_object_info.h
index
b175daf
..
2ec4e56
100644
(file)
--- a/
src/mc/mc_object_info.h
+++ b/
src/mc/mc_object_info.h
@@
-23,15
+23,13
@@
#include <elfutils/libdw.h>
#include <elfutils/libdw.h>
-#include "mc_forward.h"
+#include "mc_forward.h
pp
"
#include "mc_location.h"
#include "mc_process.h"
#include "../smpi/private.h"
// ***** Type
#include "mc_location.h"
#include "mc_process.h"
#include "../smpi/private.h"
// ***** Type
-typedef int e_mc_type_type;
-
namespace simgrid {
namespace mc {
namespace simgrid {
namespace mc {
@@
-47,7
+45,8
@@
public:
Type(Type&& type) = default;
Type& operator=(Type&&) = default;
Type(Type&& type) = default;
Type& operator=(Type&&) = default;
- e_mc_type_type type;
+ /** The DWARF TAG of the type (e.g. DW_TAG_array_type) */
+ int type;
Dwarf_Off id; /* Offset in the section (in hexadecimal form) */
std::string name; /* Name of the type */
int byte_size; /* Size in bytes */
Dwarf_Off id; /* Offset in the section (in hexadecimal form) */
std::string name; /* Name of the type */
int byte_size; /* Size in bytes */
@@
-59,8
+58,8
@@
public:
// Location (for members) is either of:
simgrid::mc::DwarfExpression location_expression;
// Location (for members) is either of:
simgrid::mc::DwarfExpression location_expression;
-
mc_type_t
subtype; // DW_AT_type
-
mc_type_t
full_type; // The same (but more complete) type
+
simgrid::mc::Type*
subtype; // DW_AT_type
+
simgrid::mc::Type*
full_type; // The same (but more complete) type
bool has_offset_location() const
{
bool has_offset_location() const
{
@@
-89,11
+88,6
@@
public:
// ***** Object info
// ***** Object info
-/** Bit field of options */
-typedef int mc_object_info_flags;
-#define MC_OBJECT_INFO_NONE 0
-#define MC_OBJECT_INFO_EXECUTABLE 1
-
namespace simgrid {
namespace mc {
namespace simgrid {
namespace mc {
@@
-105,14
+99,14
@@
public:
int global;
std::string name;
std::uint64_t type_id;
int global;
std::string name;
std::uint64_t type_id;
-
mc_type_t
type;
+
simgrid::mc::Type*
type;
// Use either of:
simgrid::mc::LocationList location_list;
void* address;
size_t start_scope;
// Use either of:
simgrid::mc::LocationList location_list;
void* address;
size_t start_scope;
-
mc_object_info_t
object_info;
+
simgrid::mc::ObjectInformation*
object_info;
};
class Frame {
};
class Frame {
@@
-128,7
+122,7
@@
public:
unsigned long int id; /* DWARF offset of the subprogram */
std::vector<Frame> scopes;
Dwarf_Off abstract_origin_id;
unsigned long int id; /* DWARF offset of the subprogram */
std::vector<Frame> scopes;
Dwarf_Off abstract_origin_id;
-
mc_object_info_t
object_info;
+
simgrid::mc::ObjectInformation*
object_info;
};
/** An entry in the functions index
};
/** An entry in the functions index
@@
-137,7
+131,7
@@
public:
*/
struct FunctionIndexEntry {
void* low_pc;
*/
struct FunctionIndexEntry {
void* low_pc;
-
mc_frame_t
function;
+
simgrid::mc::Frame*
function;
};
/** Information about an (ELF) executable/sharedobject
};
/** Information about an (ELF) executable/sharedobject
@@
-165,7
+159,11
@@
public:
ObjectInformation(ObjectInformation const&) = delete;
ObjectInformation& operator=(ObjectInformation const&) = delete;
ObjectInformation(ObjectInformation const&) = delete;
ObjectInformation& operator=(ObjectInformation const&) = delete;
- mc_object_info_flags flags;
+ // Flag:
+ static const int Executable = 1;
+
+ /** Bitfield of flags */
+ int flags;
std::string file_name;
const void* start;
const void *end;
std::string file_name;
const void* start;
const void *end;
@@
-190,7
+188,7
@@
public:
bool executable() const
{
bool executable() const
{
- return this->flags &
MC_OBJECT_INFO_EXECUTABLE
;
+ return this->flags &
simgrid::mc::ObjectInformation::Executable
;
}
bool privatized() const
}
bool privatized() const
@@
-200,8
+198,7
@@
public:
void* base_address() const;
void* base_address() const;
- mc_frame_t find_function(const void *ip) const;
- // TODO, should be simgrid::mc::Variable*
+ simgrid::mc::Frame* find_function(const void *ip) const;
simgrid::mc::Variable* find_variable(const char* name) const;
};
simgrid::mc::Variable* find_variable(const char* name) const;
};
@@
-210,17
+207,17
@@
public:
}
}
-XBT_INTERNAL std::shared_ptr<s
_mc_object_info_t
> MC_find_object_info(
+XBT_INTERNAL std::shared_ptr<s
imgrid::mc::ObjectInformation
> MC_find_object_info(
std::vector<simgrid::mc::VmMap> const& maps, const char* name, int executable);
std::vector<simgrid::mc::VmMap> const& maps, const char* name, int executable);
-XBT_INTERNAL void MC_post_process_object_info(
mc_process_t process, mc_object_info_t
info);
+XBT_INTERNAL void MC_post_process_object_info(
simgrid::mc::Process* process, simgrid::mc::ObjectInformation*
info);
-XBT_INTERNAL void MC_dwarf_get_variables(
mc_object_info_t
info);
-XBT_INTERNAL void MC_dwarf_get_variables_libdw(
mc_object_info_t
info);
+XBT_INTERNAL void MC_dwarf_get_variables(
simgrid::mc::ObjectInformation*
info);
+XBT_INTERNAL void MC_dwarf_get_variables_libdw(
simgrid::mc::ObjectInformation*
info);
XBT_INTERNAL const char* MC_dwarf_attrname(int attr);
XBT_INTERNAL const char* MC_dwarf_tagname(int tag);
XBT_INTERNAL void* mc_member_resolve(
XBT_INTERNAL const char* MC_dwarf_attrname(int attr);
XBT_INTERNAL const char* MC_dwarf_tagname(int tag);
XBT_INTERNAL void* mc_member_resolve(
- const void* base,
mc_type_t type, mc_type_t
member,
-
mc_address_space_t
snapshot, int process_index);
+ const void* base,
simgrid::mc::Type* type, simgrid::mc::Type*
member,
+
simgrid::mc::AddressSpace*
snapshot, int process_index);
#endif
#endif