Hi Aaton
Thanks so much for your reply. Actually in the end I found a diff engine which runs under .net, so I've created a simple C# utility for this particular job.
I do appreciate the great support though, and thanks again.
Announcement
Collapse
No announcement yet.
Comparing disassembly listing, but only in parts where C source has changed
Collapse
X
-
Hello,
The two main tools that BC4 can offer are the regex Grammar definitions (which run through the whole file, looking for matches) or pre-processing Conversion (which can run any command line app, taking an input, and presenting back a processed output; in this case, an output striped of all unimportant text).
Our reference material for general Unimportance is here:
http://www.scootersoftware.com/suppo..._unimportantv3
while Conversion is covered here:
http://www.scootersoftware.com/suppo...rnalconversion
We don't have a predefined format that can detect C Souce within another file type; if you are familiar with any command line app which could process this, then using the Conversion process is probably best to separate your data. We don't have an If This/Then logic for the grammars, so the regular expressions can't match on "if C Source Above, then match on assembly below"; the regEx would need to match on the specific text you are trying to find or not find, and then that match can be made Important or Unimportant.
Leave a comment:
-
Comparing disassembly listing, but only in parts where C source has changed
I have two sets of disassembly listings, produced with objdump -S- so the original C source is interleaved with the asm output.
What I want to do is compare only those assembly lines for which the C source has changed, in other words if a change is detected in the C source then compare the following lines of disassembly. The object of the exercise is to find what effect patches (carried out to meet a coding standard) are having on the generated object code.
typical output of the disassembly listing is this
Code:for (i = LCD_WIDTH * LCD_HEIGHT * 2 / 4; i < LCD_WIDTH * LCD_HEIGHT * 3 / 4; i++) fc: 697b ldr r3, [r7, #20] fe: 3301 adds r3, #1 100: 617b str r3, [r7, #20]
Code:if((line.type == Csource) && (line.this != line.that)) { while(1) { line = getNextLine(); if(line.type == Disassembly { if(line.this != line.other) { writeToDiffLog(line); } } else if(line.type == Csource) { break; } } }
Tags: None
Leave a comment: