preview

The Proposed Solution1 Builds A Framework For Add Static Probes

Decent Essays

The proposed solution1 builds a framework to add static probes. This solution was designed and implemented by me as part of VProbes[7] project during summer internship 2014 at VMware, inc. The solution in this paper covers a high level overview of the framework. It builds on top of the existing VProbes[7] design1. User space applications or the existing kernel source can add static probes using this framework. The paper describes adding static probes in a user space application to keep the explanation simple. Figure 1 shows a simple user code. The application contains two probe points defined viz. FuncEntry and FuncExit. These are static probes which are added by the developer. The probe points are expanded in a macro which is defined in the header file probes.h. Each of these probe points are declared as a volatile integer variable. However, these integer variables are declared in a separate section in the ELF file as shown in Figure 2. Thus all the defined probe points are part of new section called probes_uwsection. The probe points are padded with a name called “PROBE_” and “_PROBE” to avoid name mangling issue in C++. Hence, after pre-processing stage, every probe name is padded. The application is compiled and loaded. During application load in the kernel, the binary is intercepted at the ELF loader. In the ELF loader, the binary is checked for the presence of the new section probes_uwsection. If the new section exists, all the probe points declared in the new

Get Access