mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-07-03 17:58:30 +00:00
parent
937d921018
commit
c3ed8d6c7f
11 changed files with 141 additions and 73 deletions
|
@ -144,7 +144,7 @@ static void DisCanonizeSyms(struct Dis *d) {
|
|||
d->syms.n = i;
|
||||
}
|
||||
for (i = 0; i < d->syms.i; ++i) {
|
||||
DEBUGF("%p-%p %s", d->syms.p[i].addr,
|
||||
DEBUGF("%012lx-%012lx %s", d->syms.p[i].addr,
|
||||
d->syms.p[i].addr + (d->syms.p[i].size ? d->syms.p[i].size - 1 : 0),
|
||||
d->syms.stab + d->syms.p[i].name);
|
||||
}
|
||||
|
|
|
@ -78,7 +78,7 @@ static void LoadElf(struct Machine *m, struct Elf *elf) {
|
|||
unsigned i;
|
||||
Elf64_Phdr *phdr;
|
||||
m->ip = elf->base = elf->ehdr->e_entry;
|
||||
VERBOSEF("LOADELF ENTRY %p", m->ip);
|
||||
VERBOSEF("LOADELF ENTRY %012lx", m->ip);
|
||||
for (i = 0; i < elf->ehdr->e_phnum; ++i) {
|
||||
phdr = GetElfSegmentHeaderAddress(elf->ehdr, elf->size, i);
|
||||
switch (phdr->p_type) {
|
||||
|
|
|
@ -49,14 +49,14 @@ static void FormatStartPage(struct Pml4tFormater *pp, int64_t start) {
|
|||
pp->t = true;
|
||||
pp->start = start;
|
||||
if (pp->lines++) AppendChar(&pp->b, '\n');
|
||||
AppendFmt(&pp->b, "%p-", start);
|
||||
AppendFmt(&pp->b, "%012lx-", start);
|
||||
}
|
||||
|
||||
static void FormatEndPage(struct Pml4tFormater *pp, int64_t end) {
|
||||
int64_t size;
|
||||
pp->t = false;
|
||||
size = end - pp->start;
|
||||
AppendFmt(&pp->b, "%p %p %,ld bytes", end - 1, size, size);
|
||||
AppendFmt(&pp->b, "%012lx %012lx %,ld bytes", end - 1, size, size);
|
||||
}
|
||||
|
||||
static void *GetPt(struct Machine *m, uint64_t r) {
|
||||
|
|
|
@ -530,7 +530,7 @@ static int64_t OpBrk(struct Machine *m, int64_t addr) {
|
|||
}
|
||||
|
||||
static int OpMunmap(struct Machine *m, int64_t virt, uint64_t size) {
|
||||
VERBOSEF("MUNMAP%s %p %,ld", GetSimulated(), virt, size);
|
||||
VERBOSEF("MUNMAP%s %012lx %,ld", GetSimulated(), virt, size);
|
||||
return FreeVirtual(m, virt, size);
|
||||
}
|
||||
|
||||
|
@ -538,8 +538,8 @@ static int64_t OpMmap(struct Machine *m, int64_t virt, size_t size, int prot,
|
|||
int flags, int fd, int64_t offset) {
|
||||
void *tmp;
|
||||
uint64_t key;
|
||||
VERBOSEF("MMAP%s %p %,ld %#x %#x %d %#lx", GetSimulated(), virt, size, prot,
|
||||
flags, fd, offset);
|
||||
VERBOSEF("MMAP%s %012lx %,ld %#x %#x %d %#lx", GetSimulated(), virt, size,
|
||||
prot, flags, fd, offset);
|
||||
if (prot & PROT_READ) {
|
||||
key = 0x0205;
|
||||
if (prot & PROT_WRITE) key |= 2;
|
||||
|
@ -821,12 +821,12 @@ static ssize_t OpWrite(struct Machine *m, int fd, int64_t addr, size_t size) {
|
|||
if ((rc = m->fds.p[fd].cb->writev(m->fds.p[fd].fd, iv.p, iv.i)) != -1) {
|
||||
SetReadAddr(m, addr, rc);
|
||||
} else {
|
||||
VERBOSEF("write(%d [%d], %p, %zu) failed: %s", fd, m->fds.p[fd].fd,
|
||||
VERBOSEF("write(%d [%d], %012lx, %zu) failed: %s", fd, m->fds.p[fd].fd,
|
||||
addr, size, strerror(errno));
|
||||
}
|
||||
}
|
||||
} else {
|
||||
VERBOSEF("write(%d, %p, %zu) bad fd", fd, addr, size);
|
||||
VERBOSEF("write(%d, %012lx, %zu) bad fd", fd, addr, size);
|
||||
rc = ebadf();
|
||||
}
|
||||
FreeIovs(&iv);
|
||||
|
|
|
@ -44,7 +44,7 @@ void ThrowDivideError(struct Machine *m) {
|
|||
void ThrowSegmentationFault(struct Machine *m, int64_t va) {
|
||||
m->faultaddr = va;
|
||||
if (m->xedd) m->ip -= m->xedd->length;
|
||||
WARNF("%s%s ADDR %p IP %p AX %lx CX %lx DX %lx BX %lx SP %lx "
|
||||
WARNF("%s%s ADDR %012lx IP %012lx AX %lx CX %lx DX %lx BX %lx SP %lx "
|
||||
"BP %lx SI %lx DI %lx R8 %lx R9 %lx R10 %lx R11 %lx R12 %lx R13 %lx "
|
||||
"R14 %lx R15 %lx",
|
||||
"SEGMENTATION FAULT", IsGenuineCosmo() ? " SIMULATED" : "", va, m->ip,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue