Zsim-tlb: bug
bug
zsim-tlb simulate in icarus0
1 | pinbin: build/opt/zsim.cpp:816: LEVEL_BASE::VOID VdsoCallPoint(LEVEL_VM::THREADID): Assertion `vdsoPatchData[tid].level' failed. |
locate error
1 | VOID VdsoCallPoint(THREADID tid) { |
vDSO
(virtual dynamic shared object) is a kernel machanism for exporting a carefully set kernel space routines (eg. not secret api,gettid()
andgettimeofday()
) to user
spapce to eliminate the performance penalty of user-kernel mode switch according to wiki.vDSO
- You can use some
__vdso_getcpu()
C library, and kernel will auto move it to user-space vDSO
overcomevsyscall
(first linux-kernel machanism to accelerate syscall) drawback.- In zsim,
vDSO
have only four functionenum VdsoFunc {VF_CLOCK_GETTIME, VF_GETTIMEOFDAY, VF_TIME, VF_GETCPU};
vDSO simulate part
1 | // Instrumentation function, called for EVERY instruction |
INS_Address
is from pin-kit
, but INS_InsertCall
is pin api.
try:
.level
is just show the level of nested vsyscall. I think comment the assert
which trigerd when callfunc
before entryfunc
is just fun.
需要进一步的研究学习
暂无
遇到的问题
暂无
开题缘由、总结、反思、吐槽~~
参考文献
上面回答部分来自ChatGPT-3.5,没有进行正确性的交叉校验。
无