So I tried Dyninst but it is not as clean as I need. I am afraid I will need to implement this in the compiler. I have already implemented it as a backend pass for another compiler, but unfortunately it doesnt compile the linux kernel :P
So back to square one. Any tips on what code/config-files I need to modify with to get GCC to emit additional opcodes for certain instructions? Yasser On Fri, Oct 23, 2015 at 10:43 AM, William Cohen <wco...@redhat.com> wrote: > On 10/23/2015 11:37 AM, Yasser Shalabi wrote: >> Hey Will, >> >> Thanks for the quick reply. Yeah I need the int3 instruction to be >> statically included in he binary so I can't use any dynamic >> instrumentation tool. > > Dyninst can do binary rewrites of executables so that might still be suitable. > > http://www.dyninst.org/sites/default/files/downloads/w2009/legendre-binrewriter.pdf > > -Will > >> >> On Fri, Oct 23, 2015 at 10:32 AM, William Cohen <wco...@redhat.com> wrote: >>> On 10/23/2015 01:37 AM, Yasser Shalabi wrote: >>>> Hello, >>>> >>>> I am new to the GCC code. I want to make a simple modification to the >>>> back end. I want to add a debug exception (int3) to be generated >>>> before any instance of certain x86 instructions. >>>> >>>> I tried to modify gcc/config/i386/i386.md by adding a "int3" to the >>>> define_insn for instructions of interest. But that just caused >>>> configure to fail (cannot run generated C programs). >>>> >>>> Any pointers on how to approach this? Also, suggestions for >>>> alternative approaches are also welcome. >>>> >>>> Thanks! >>>> >>> >>> Hi, >>> >>> Do you need the int3 specifically before those instructions? Or are you >>> just looking to instrument the code and collect some information before >>> those instructions are executed? Some alternative instrumentation tools >>> you might look at to instrument existing code are: >>> >>> dyninst http://www.dyninst.org/ >>> Valgrind http://valgrind.org/ >>> Intel's Pin tool >>> https://software.intel.com/en-us/articles/pin-a-dynamic-binary-instrumentation-tool >>> >>> -Will >