This paper describes a debugging method for library functions written in assembly language without a target debugging tool. The proposed method can reduce the time required to port codes written in assembly language such as library functions and OS kernels. In the proposed method, an assembly library function is translated into a C function with debugging information which can be used in a host debugging tool. Since a hand-written assembly code is different from a compiler-generated code in the point of translation, a new analysis method is proposed. When translating an assembly code, the debugging information that links the assembly code with the generated C code is inserted as directives in the generated C code. By executing the host executable compiled from the generated C code on a host debugger which exploits the debugging information directives, we can debug the input assembly code. To verify the proposed method, we translate the assembly library functions in libgcc into C codes and execute the generated C code on a host debugger, GDB.
['Jin Gu Kang', 'Seung Won Yang', 'Jong Yeol Lee']
Debugging of assembly library functions without target debugging tools