X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/299c2d7814cebfdfdd05c1225b67ec2943900ba1..ee045f4f1937caf0bfa24c09381ccea281300796:/src/mc/mc_dwarf.c diff --git a/src/mc/mc_dwarf.c b/src/mc/mc_dwarf.c index 2cf3c0e255..cc9a8eb8cc 100644 --- a/src/mc/mc_dwarf.c +++ b/src/mc/mc_dwarf.c @@ -1,9 +1,11 @@ -/* Copyright (c) 2008-2013. The SimGrid Team. +/* Copyright (c) 2008-2014. The SimGrid Team. * All rights reserved. */ + /* This program is free software; you can redistribute it and/or modify it * under the terms of the license (GNU LGPL) which comes with this package. */ #include +#define DW_LANG_Objc DW_LANG_ObjC /* fix spelling error in older dwarf.h */ #include #include #include @@ -14,10 +16,6 @@ #include "mc_private.h" -// Define symbols not present in old version of dwarf.h. -// Old version of dwarf.h, use DW_LANG_Objc instead of this: -#define DW_LANG_ObjC 0x0010 - XBT_LOG_NEW_DEFAULT_SUBCATEGORY(mc_dwarf, mc, "DWARF processing"); /** \brief The default DW_TAG_lower_bound for a given DW_AT_language. @@ -710,14 +708,14 @@ static dw_variable_t MC_die_to_variable(mc_object_info_t info, Dwarf_Die* die, D size_t len; if (dwarf_getlocation(&attr_location, &expr, &len)) { xbt_die( - "Could not read location expression in DW_AT_location of variable <%p>%s", - (void*) variable->dwarf_offset, variable->name); + "Could not read location expression in DW_AT_location of variable <%"PRIx64">%s", + (uint64_t) variable->dwarf_offset, variable->name); } if (len==1 && expr[0].atom == DW_OP_addr) { variable->global = 1; - Dwarf_Off offset = expr[0].number; - Dwarf_Off base = (Dwarf_Off) MC_object_base_address(info); + uintptr_t offset = (uintptr_t) expr[0].number; + uintptr_t base = (uintptr_t) MC_object_base_address(info); variable->address = (void*) (base + offset); } else { mc_dwarf_location_list_init_from_expression(&variable->locations, len, expr); @@ -731,8 +729,8 @@ static dw_variable_t MC_die_to_variable(mc_object_info_t info, Dwarf_Die* die, D mc_dwarf_location_list_init(&variable->locations, info, die, &attr_location); break; default: - xbt_die("Unexpected form 0x%x (%i), class 0x%x (%i) list for location in <%p>%s", - form, form, klass, klass, (void*) variable->dwarf_offset, variable->name); + xbt_die("Unexpected form 0x%x (%i), class 0x%x (%i) list for location in <%"PRIx64">%s", + form, form, klass, klass, (uint64_t) variable->dwarf_offset, variable->name); } // Handle start_scope: @@ -835,7 +833,7 @@ static void MC_dwarf_handle_scope_die(mc_object_info_t info, Dwarf_Die* die, Dwa if (dwarf_formsdata(&attr, &offset) !=0) xbt_die("Could not read constant"); - frame->high_pc = (void*) ((Dwarf_Off)frame->low_pc + offset); + frame->high_pc = (void*) ((char*)frame->low_pc + offset); break; // DW_AT_high_pc is a relocatable address: