Fixed wrong %x to %lx.

This commit is contained in:
Naoki Hamada
2014-07-11 18:48:15 +09:00
parent b3f3932825
commit cb9d346567
2 changed files with 23 additions and 29 deletions

View File

@ -222,7 +222,7 @@ int gencore(struct process *proc, void *regs,
} }
list_for_each_entry(range, &vm->vm_range_list, list) { list_for_each_entry(range, &vm->vm_range_list, list) {
dkprintf("start:%x end:%x flag:%x objoff:%x\n", dkprintf("start:%lx end:%lx flag:%lx objoff:%lx\n",
range->start, range->end, range->flag, range->objoff); range->start, range->end, range->flag, range->objoff);
/* We omit reserved areas because they are only for /* We omit reserved areas because they are only for
mckernel's internal use. */ mckernel's internal use. */
@ -235,18 +235,16 @@ int gencore(struct process *proc, void *regs,
{ {
struct vm_regions region = proc->vm->region; struct vm_regions region = proc->vm->region;
dkprintf("text: %x-%x\n", region.text_start, region.text_end); dkprintf("text: %lx-%lx\n", region.text_start, region.text_end);
dkprintf("data: %x-%x\n", region.data_start, region.data_end); dkprintf("data: %lx-%lx\n", region.data_start, region.data_end);
dkprintf("brk: %x-%x\n", region.brk_start, region.brk_end); dkprintf("brk: %lx-%lx\n", region.brk_start, region.brk_end);
dkprintf("map: %x-%x\n", region.map_start, region.map_end); dkprintf("map: %lx-%lx\n", region.map_start, region.map_end);
dkprintf("stack: %x-%x\n", region.stack_start, region.stack_end); dkprintf("stack: %lx-%lx\n", region.stack_start, region.stack_end);
dkprintf("user: %x-%x\n\n", region.user_start, region.user_end); dkprintf("user: %lx-%lx\n\n", region.user_start, region.user_end);
} }
dkprintf("now generate a core file image\n"); dkprintf("now generate a core file image\n");
#ifndef DUMMY
offset += sizeof(eh); offset += sizeof(eh);
fill_elf_header(&eh, segs); fill_elf_header(&eh, segs);
@ -310,12 +308,15 @@ int gencore(struct process *proc, void *regs,
ct[0].addr = virt_to_phys(&eh); /* ELF header */ ct[0].addr = virt_to_phys(&eh); /* ELF header */
ct[0].len = 64; ct[0].len = 64;
dkprintf("coretable[0]: %lx@%lx(%lx)\n", ct[0].len, ct[0].addr, &eh);
ct[1].addr = virt_to_phys(ph); /* program header table */ ct[1].addr = virt_to_phys(ph); /* program header table */
ct[1].len = phsize; ct[1].len = phsize;
dkprintf("coretable[1]: %lx@%lx(%lx)\n", ct[1].len, ct[1].addr, ph);
ct[2].addr = virt_to_phys(note); /* NOTE segment */ ct[2].addr = virt_to_phys(note); /* NOTE segment */
ct[2].len = notesize; ct[2].len = notesize;
dkprintf("coretable[2]: %lx@%lx(%lx)\n", ct[2].len, ct[2].addr, note);
i = 3; /* memory segments */ i = 3; /* memory segments */
list_for_each_entry(range, &vm->vm_range_list, list) { list_for_each_entry(range, &vm->vm_range_list, list) {
@ -323,29 +324,12 @@ int gencore(struct process *proc, void *regs,
continue; continue;
ct[i].addr = virt_to_phys(range->start); ct[i].addr = virt_to_phys(range->start);
ct[i].len = range->end - range->start; ct[i].len = range->end - range->start;
dkprintf("coretable[%d]: %lx@%lx(%lx)\n", i, ct[i].len, ct[i].addr, range->start);
i++; i++;
} }
*chunks = segs + 2; *chunks = segs + 2;
#else /* dummy */
*coretable = kmalloc(sizeof(struct coretable) * 3, IHK_MC_AP_NOWAIT);
if (!*coretable) {
dkprintf("could not alloc a coretable.\n");
goto fail;
}
ct[0].len = 8;
ct[0].addr = virt_to_phys("this is ");
ct[1].len = 7;
ct[1].addr = virt_to_phys("a test ");
ct[2].len = 15;
ct[2].addr = virt_to_phys("for coredump.\n");
dkprintf("generated a core table.\n");
*chunks = 3;
#endif
*coretable = ct; *coretable = ct;
return 0; return 0;
fail: fail:

View File

@ -1200,9 +1200,19 @@ static int writecore(ihk_os_t os, unsigned long rcoretable, int chunks) {
/* map and write the chunk out */ /* map and write the chunk out */
rphys = coretable[i].addr; rphys = coretable[i].addr;
size = coretable[i].len; size = coretable[i].len;
dprintk("mapping remote %lx@%lx -> ", size, rphys);
phys = ihk_device_map_memory(dev, rphys, size); phys = ihk_device_map_memory(dev, rphys, size);
dprintk("physical %lx, ", phys);
pt = ihk_device_map_virtual(dev, phys, size, NULL, 0); pt = ihk_device_map_virtual(dev, phys, size, NULL, 0);
ret = file->f_op->write(file, pt, size, &file->f_pos); dprintk("virtual %lx\n", pt);
if (pt != NULL) {
ret = file->f_op->write(file, pt, size, &file->f_pos);
} else {
dprintk("cannot map physical memory(%lx) to virtual memory.\n",
phys);
ihk_device_unmap_memory(dev, phys, size);
break;
}
/* unmap the chunk */ /* unmap the chunk */
ihk_device_unmap_virtual(dev, pt, size); ihk_device_unmap_virtual(dev, pt, size);
ihk_device_unmap_memory(dev, phys, size); ihk_device_unmap_memory(dev, phys, size);