Read more
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 vDSOovercomevsyscall(first linux-kernel machanism to accelerate syscall) drawback.- In zsim,
vDSOhave 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,没有进行正确性的交叉校验。
无