#include <dwarf.h>
#include <elfutils/libdw.h>
+#include <xbt/base.h>
#include <xbt/range.hpp>
-#include "simgrid_config.h"
#include "src/mc/mc_base.h"
#include "src/mc/mc_forward.hpp"
-#include "src/mc/AddressSpace.hpp"
#include "src/mc/DwarfExpression.hpp"
namespace simgrid {
namespace dwarf {
-/** \brief A DWARF expression with optional validity contraints */
+/** \brief A DWARF expression with optional validity constraints */
class LocationListEntry {
public:
- typedef simgrid::xbt::range<std::uint64_t> range_type;
+ typedef simgrid::xbt::Range<std::uint64_t> range_type;
private:
DwarfExpression expression_;
- range_type range_ = {0, 0};
+ range_type range_ = {0, UINT64_MAX};
public:
LocationListEntry() {}
LocationListEntry(DwarfExpression expression, range_type range)
: expression_(std::move(expression)), range_(range)
{}
LocationListEntry(DwarfExpression expression)
- : expression_(std::move(expression)), range_({0, 0})
+ : expression_(std::move(expression)), range_({0, UINT64_MAX})
{}
DwarfExpression& expression()
{
return expression_;
}
- bool always_valid() const
- {
- return range_.begin() == 0 && range_.end() == 0;
- }
bool valid_for_ip(unw_word_t ip) const
{
- return always_valid() || range_.contain(ip);
+ return range_.contain(ip);
}
};