Skip to content

Instantly share code, notes, and snippets.

@ikitayama
Created April 5, 2017 04:38
Show Gist options
  • Select an option

  • Save ikitayama/0de34b01cbcd0d0559c0ccfbe5afe6d2 to your computer and use it in GitHub Desktop.

Select an option

Save ikitayama/0de34b01cbcd0d0559c0ccfbe5afe6d2 to your computer and use it in GitHub Desktop.
[process.C:6874-U] - User wants to write memory to remote addr 0xffffb6def260 from buffer 0x0x2bf27b0 of size 4
[process.C:1569-U] - Writing to remote memory ffffb6def260 from 0x2bf27b0, size = 4 on 10024/10024
[response.C:304-U] - Waiting for async event 134, complete
[process.C:6874-U] - User wants to write memory to remote addr 0xffffb6def274 from buffer 0x0x4121670 of size 4
[process.C:1569-U] - Writing to remote memory ffffb6def274 from 0x4121670, size = 4 on 10024/10024
[response.C:304-U] - Waiting for async event 135, complete
[process.C:6874-U] - User wants to write memory to remote addr 0xffffb6def270 from buffer 0x0x3653860 of size 4
[process.C:1569-U] - Writing to remote memory ffffb6def270 from 0x3653860, size = 4 on 10024/10024
[response.C:304-U] - Waiting for async event 136, complete
[process.C:3776-U] - Get register value for thread 10024, register aarch64::pc
[process.C:3819-U] - Had cached register value
[process.C:3850-U] - Returning register value 400588 for register aarch64::pc on 10024
[response.C:304-U] - Waiting for async event 137, complete
[process.C:3776-U] - Get register value for thread 10024, register aarch64::sp
[process.C:3819-U] - Had cached register value
[process.C:3850-U] - Returning register value fffffffff010 for register aarch64::sp on 10024
[response.C:304-U] - Waiting for async event 138, complete
[process.C:3776-U] - Get register value for thread 10024, register aarch64::x29
[process.C:3819-U] - Had cached register value
[process.C:3850-U] - Returning register value fffffffff010 for register aarch64::x29 on 10024
[response.C:304-U] - Waiting for async event 139, complete
number of points 1
[281473768803520]dynProcess.C[1635]: inferiorMalloc entered; size 8, type 2, near 0x0 (0x10000 to 0xffffffffffffffff)
[281473768803520]addressSpace.C[439]: inferiorMallocInternal, 8 bytes, type 2, between 0x10000 - 0xffffffffffffffff
[281473768803520]addressSpace.C[384]: comparing heap 0: 0xffffb6f20000-0xffffb6fa0000/4096 to desired 8 bytes in 0x10000-0xffffffffffffffff/2
[281473768803520]addressSpace.C[384]: comparing heap 1: 0xffffb6fa04a0-0xffffb7fa0000/7 to desired 8 bytes in 0x10000-0xffffffffffffffff/2
[281473768803520]addressSpace.C[395]: returning match 1
[281473768803520]dynProcess.C[1699]: inferiorMalloc, returning address 0xffffb6fa04a0
ADDRSPACE::Relocate called; modified functions reports 1 objects to relocate.
Adding function f1
Creating new RelocBlock
Adding instruction @400560: mov W0, 0
Adding instruction @400564: ret X30, 400564
Added suggested entry for f1 / 400560
Added required entry for f1 / 400560
Debugging CodeMover (pre-transform)
CodeMover() {
RelocBlock(/home/itaru.kitayama/a.out: f1 400560/76/-1) {
Insn(400560: mov W0, 0)
CFWidget(400564,<ind>)
In edges:
Out edges:
}
}
determineSpringboards (entry block): f1 / 400560 is required
PCRelTrans: processing block (ID= 76) 0x4cce9d0 with 2 elements.
Inst transformer
Processing trace 76 @ 400560
Adding function entry at trace 76
Debugging CodeMover
CodeMover() {
RelocBlock(/home/itaru.kitayama/a.out: f1 400560/77/-1) {
InstWidget()
CFWidget(400560,)
In edges: B{400598/+},
Out edges:T{76/+}<fallthrough>,
}
RelocBlock(/home/itaru.kitayama/a.out: f1 400560/76/-1) {
Insn(400560: mov W0, 0)
CFWidget(400564,<ind>)
In edges: T{77/+},
Out edges:
}
}
Entering code generation loop
CFWidget @ 400560, adding destination T{76/+} / 1
Generating block 77 orig @ 400560
2 elements
At entry, code buffer has size 0
With function f1
CFWidget generation for 77
generating CFWidget as direct branch
target reported unnecessary
At exit, code buffer has size 0
Generating block 76 orig @ 400560
2 elements
At entry, code buffer has size 0
With function f1
CFWidget generation for 76
generating CFWidget as indirect branch
At exit, code buffer has size 8
Attempting to allocate 8bytes
[281473768803520]dynProcess.C[1635]: inferiorMalloc entered; size 8, type 7, near 0x400412 (0x0 to 0x2400411)
[281473768803520]addressSpace.C[439]: inferiorMallocInternal, 8 bytes, type 7, between 0x0 - 0x2400411
[281473768803520]addressSpace.C[384]: comparing heap 0: 0xffffb6f20000-0xffffb6fa0000/4096 to desired 8 bytes in 0x0-0x2400411/7
[281473768803520]addressSpace.C[384]: comparing heap 1: 0xffffb6fa04a8-0xffffb7fa0000/7 to desired 8 bytes in 0x0-0x2400411/7
[281473768803520]addressSpace.C[395]: returning match -1
[281473768803520]dynProcess.C[1647]: garbage collecting and compacting
[281473768803520]addressSpace.C[439]: inferiorMallocInternal, 8 bytes, type 7, between 0x0 - 0x2400411
[281473768803520]addressSpace.C[384]: comparing heap 0: 0xffffb6f20000-0xffffb6fa0000/4096 to desired 8 bytes in 0x0-0x2400411/7
[281473768803520]addressSpace.C[384]: comparing heap 1: 0xffffb6fa04a8-0xffffb7fa0000/7 to desired 8 bytes in 0x0-0x2400411/7
[281473768803520]addressSpace.C[395]: returning match -1
[281473768803520]dynProcess.C[1652]: inferiorMallocDynamic for 1048576 (0x100000) bytes between 0x0 - 0x2400411
[281473768803520]dynProcess.C[1728]: entering inferiorMallocDynamic
[281473768803520]====== Code Generation Start =====
Call/0x4ccfa00(DYNINSTos_malloc)
Oper/0x4ccf8b0(Constant/0x100000)
Oper/0x4ccf920(Constant/0)
Oper/0x4ccf990(Constant/0x2400411)
[281473768803520]
srcs.size() 3
offset 1ffffff
abs(disp) ffffb6f03d69
from ffffffffffffffff
to ffffb6f03d68
mutator: /home/itaru.kitayama/projects/dyninst/dyninstAPI/src/codegen-aarch64.C:203: static void insnCodeGen::generateBranchViaTrap(codeGen&, Dyninst::Address, Dyninst::Address, bool): Assertion `!isCall' failed.
Thread 1 "mutator" received signal SIGABRT, Aborted.
__GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:58
58 }
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment