const malloc_info* heapinfos2 = snapshot2->read<malloc_info*>(
(std::uint64_t)heapinfo_address, simgrid::mc::ProcessIndexMissing);
- while (i1 <= state->heaplimit) {
+ while (i1 < state->heaplimit) {
const malloc_info* heapinfo1 = (const malloc_info*) MC_region_read(heap_region1, &heapinfo_temp1, &heapinfos1[i1], sizeof(malloc_info));
const malloc_info* heapinfo2 = (const malloc_info*) MC_region_read(heap_region2, &heapinfo_temp2, &heapinfos2[i1], sizeof(malloc_info));
}
- while (i2 <= state->heaplimit && !equal) {
+ while (i2 < state->heaplimit && !equal) {
addr_block2 = (ADDR2UINT(i2) - 1) * BLOCKSIZE +
(char *) state->std_heap_copy.heapbase;
}
- while (i2 <= state->heaplimit && !equal) {
+ while (i2 < state->heaplimit && !equal) {
const malloc_info* heapinfo2b = (const malloc_info*) MC_region_read(
heap_region2, &heapinfo_temp2b, &heapinfos2[i2],
/* All blocks/fragments are equal to another block/fragment ? */
size_t i = 1, j = 0;
- for(i = 1; i <= state->heaplimit; i++) {
+ for(i = 1; i < state->heaplimit; i++) {
const malloc_info* heapinfo1 = (const malloc_info*) MC_region_read(
heap_region1, &heapinfo_temp1, &heapinfos1[i], sizeof(malloc_info));
if (heapinfo1->type == MMALLOC_TYPE_UNFRAGMENTED) {
// TODO, add address
XBT_DEBUG("Block %zu not found (size used = %zu)", i,
heapinfo1->busy_block.busy_size);
- //mmalloc_backtrace_block_display((void*)heapinfo1, i);
}
nb_diff1++;
}
("Block %zu, Fragment %zu not found (size used = %zd)",
i, j,
heapinfo1->busy_frag.frag_size[j]);
- //mmalloc_backtrace_fragment_display((void*)heapinfo1, i, j);
}
nb_diff1++;
}
if (i1 == state->heaplimit)
XBT_DEBUG("Number of blocks/fragments not found in heap1 : %d", nb_diff1);
- for (i=1; i <= state->heaplimit; i++) {
+ for (i=1; i < state->heaplimit; i++) {
const malloc_info* heapinfo2 = (const malloc_info*) MC_region_read(
heap_region2, &heapinfo_temp2, &heapinfos2[i], sizeof(malloc_info));
if (heapinfo2->type == MMALLOC_TYPE_UNFRAGMENTED) {
// TODO, print address of the block
XBT_DEBUG("Block %zu not found (size used = %zu)", i,
heapinfo2->busy_block.busy_size);
- //mmalloc_backtrace_block_display((void*)heapinfo2, i);
}
nb_diff2++;
}
("Block %zu, Fragment %zu not found (size used = %zd)",
i, j,
heapinfo2->busy_frag.frag_size[j]);
- //mmalloc_backtrace_fragment_display((void*)heapinfo2, i, j);
}
nb_diff2++;
}
int pointer_level)
{
top:
- // HACK: This should not happen but in pratice, there is some
- // DW_TAG_typedef without DW_AT_type. We should fix this somehow.
+
+ // HACK: This should not happen but in pratice, there are some
+ // DW_TAG_typedef without an associated DW_AT_type:
+ //<1><538832>: Abbrev Number: 111 (DW_TAG_typedef)
+ // <538833> DW_AT_name : (indirect string, offset: 0x2292f3): gregset_t
+ // <538837> DW_AT_decl_file : 98
+ // <538838> DW_AT_decl_line : 37
if (type == nullptr)
return 0;