#include <xbt/log.h>
#include <xbt/sysdep.h>
-#include "src/mc/mc_object_info.h"
#include "src/mc/mc_private.h"
#include "src/mc/mc_dwarf.hpp"
+#include "src/mc/mc_object_info.h"
#include "src/mc/Process.hpp"
#include "src/mc/ObjectInformation.hpp"
#include "src/mc/Variable.hpp"
/** \brief Get the DW_TAG_type of the DIE
*
* \param die DIE
- * \return DW_TAG_type attribute as a new string (NULL if none)
+ * \return DW_TAG_type attribute as a new string (nullptr if none)
*/
static std::uint64_t MC_dwarf_at_type(Dwarf_Die * die);
{
Dwarf_Attribute attr;
if (!dwarf_attr_integrate(die, attribute, &attr)) {
- return NULL;
+ return nullptr;
} else {
return dwarf_formstring(&attr);
}
* DW_AT_MIPS_linkage_name is used (at least by GCC).
*
* \param the DIE
- * \return linkage name of the given DIE (or NULL)
+ * \return linkage name of the given DIE (or nullptr)
* */
static const char *MC_dwarf_at_linkage_name(Dwarf_Die * die)
{
return 0;
dwarf_attr_integrate(die, attribute, &attr);
Dwarf_Die subtype_die;
- if (dwarf_formref_die(&attr, &subtype_die) == NULL)
+ if (dwarf_formref_die(&attr, &subtype_die) == nullptr)
xbt_die("Could not find DIE");
return dwarf_dieoffset(&subtype_die);
}
return 0;
dwarf_attr_integrate(die, DW_AT_type, &attr);
Dwarf_Die subtype_die;
- if (dwarf_formref_die(&attr, &subtype_die) == NULL)
+ if (dwarf_formref_die(&attr, &subtype_die) == nullptr)
xbt_die("Could not find DIE");
return dwarf_dieoffset(&subtype_die);
}
/** \brief Find the type/subtype (DW_AT_type) for a DIE
*
* \param dit the DIE
- * \return DW_AT_type reference as a global offset in hexadecimal (or NULL)
+ * \return DW_AT_type reference as a global offset in hexadecimal (or nullptr)
*/
static
std::uint64_t MC_dwarf_at_type(Dwarf_Die * die)
static uint64_t MC_dwarf_attr_integrate_addr(Dwarf_Die * die, int attribute)
{
Dwarf_Attribute attr;
- if (dwarf_attr_integrate(die, attribute, &attr) == NULL)
+ if (dwarf_attr_integrate(die, attribute, &attr) == nullptr)
return 0;
Dwarf_Addr value;
if (dwarf_formaddr(&attr, &value) == 0)
uint64_t default_value)
{
Dwarf_Attribute attr;
- if (dwarf_attr_integrate(die, attribute, &attr) == NULL)
+ if (dwarf_attr_integrate(die, attribute, &attr) == nullptr)
return default_value;
Dwarf_Word value;
return dwarf_formudata(dwarf_attr_integrate(die, attribute, &attr),
}
const char *name = MC_dwarf_attr_integrate_string(die, DW_AT_name);
- if (name != NULL) {
+ if (name != nullptr) {
char* full_name = ns ? bprintf("%s%s::%s", prefix, ns, name) :
bprintf("%s%s", prefix, name);
type.name = std::string(full_name);
case DW_TAG_union_type:
case DW_TAG_class_type:
MC_dwarf_add_members(info, die, unit, &type);
- char *new_ns = ns == NULL ? xbt_strdup(type.name.c_str())
+ char *new_ns = ns == nullptr ? xbt_strdup(type.name.c_str())
: bprintf("%s::%s", ns, name);
MC_dwarf_handle_children(info, die, unit, frame, new_ns);
free(new_ns);
return nullptr;
Dwarf_Attribute attr_location;
- if (dwarf_attr(die, DW_AT_location, &attr_location) == NULL)
+ if (dwarf_attr(die, DW_AT_location, &attr_location) == nullptr)
// No location: do not add it ?
return nullptr;
std::unique_ptr<simgrid::mc::Variable> variable =
std::unique_ptr<simgrid::mc::Variable>(new simgrid::mc::Variable());
variable->dwarf_offset = dwarf_dieoffset(die);
- variable->global = frame == NULL; // Can be override base on DW_AT_location
+ variable->global = frame == nullptr; // Can be override base on DW_AT_location
variable->object_info = info;
const char *name = MC_dwarf_attr_integrate_string(die, DW_AT_name);
default:
xbt_die
("Unhandled form 0x%x, class 0x%X for DW_AT_start_scope of variable %s",
- form, (int) form_class, name == NULL ? "?" : name);
+ form, (int) form_class, name == nullptr ? "?" : name);
}
}
const char *name = MC_dwarf_attr_integrate_string(die, DW_AT_name);
if (frame)
xbt_die("Unexpected namespace in a subprogram");
- char *new_ns = ns == NULL ? xbt_strdup(name)
+ char *new_ns = ns == nullptr ? xbt_strdup(name)
: bprintf("%s::%s", ns, name);
MC_dwarf_handle_children(info, die, unit, frame, new_ns);
xbt_free(new_ns);
if (fd < 0)
xbt_die("Could not open file %s", info->file_name.c_str());
Dwarf *dwarf = dwarf_begin(fd, DWARF_C_READ);
- if (dwarf == NULL)
+ if (dwarf == nullptr)
xbt_die("Missing debugging information in %s\n"
"Your program and its dependencies must have debugging information.\n"
"You might want to recompile with -g or install the suitable debugging package.\n",
Dwarf_Off next_offset = 0;
size_t length;
- while (dwarf_nextcu(dwarf, offset, &next_offset, &length, NULL, NULL, NULL) ==
+ while (dwarf_nextcu(dwarf, offset, &next_offset, &length, nullptr, NULL, NULL) ==
0) {
Dwarf_Die unit_die;
- if (dwarf_offdie(dwarf, offset + length, &unit_die) != NULL)
- MC_dwarf_handle_children(info, &unit_die, &unit_die, NULL, NULL);
+ if (dwarf_offdie(dwarf, offset + length, &unit_die) != nullptr)
+ MC_dwarf_handle_children(info, &unit_die, &unit_die, nullptr, NULL);
offset = next_offset;
}