ASMprofiler
Primary Investigator:
Gustavo Rodriguez-rivera
Kyle Harvey, Nicholas Bogan, Gustavo Rodriguez-Rivera
Abstract
The purpose of this research project was to create a user-friendly profiler that aids students in the optimization of x86_64 Assembly and C. This research project utilizes the profil() system call inside a shared library to create a “histogram” of time spent at each address within the text section of the target program. This data is then read from a file by a Python3 program and combined with data from objdump, addr2line, and the source code of the target program. The source code information allows for compiler-generated Assembly code to be associated with its C source code. This data is then displayed to the user in their browser via a locally hosted anonymous web server. This program successfully determined where the target program was spending its time and displayed it to the user in an easy-to-read format. This program assisted more than 500 CS250 Computer Architecture students in optimizing a hashtable written in Assembly. Computer Science educators may consider utilizing this program to aid students in optimizing C and Assembly code. Programmers may consider utilizing this program to aid themselves in optimizing C with inline Assembly code. This program could also be used for analyzing code at the assembly level to identify the most common execution paths in network exposed programs that open them up to DDoS attacks.