Added ignore command to the disassembler
authorslack <slack@codemaniacs.com>
Fri, 12 Sep 2008 01:55:58 +0000 (03:55 +0200)
committerslack <slack@codemaniacs.com>
Fri, 12 Sep 2008 01:55:58 +0000 (03:55 +0200)
wendi/wendi.cc

index 421f27efb2eb3ce975c43a318046a2af8cd6be0a..8145b401ed5674c3af01c0ed9edbb806f9e287cf 100644 (file)
@@ -26,6 +26,7 @@ typedef u16 address;
 
 list<CodeBlock> blocks;
 list<CodeBlock> pending;
+list<CodeBlock> ignore;
 
 
 void classify_block(CodeBlock &b)
@@ -319,6 +320,12 @@ int main(int argc, char **argv)
                                config >> std::hex >> a;
                                pending.push_back(CodeBlock(a));
                        }
+                       else if (cmd == "ignore")
+                       {
+                               address a;
+                               config >> std::hex >> a;
+                               ignore.push_back(CodeBlock(a));
+                       }
                        else if (cmd == "jump_table")
                        {
                                address start, end;
@@ -354,6 +361,11 @@ int main(int argc, char **argv)
                pending.pop_front();
 
                address addr = block.start;
+               if (find_block(ignore, addr) != ignore.end())
+               {
+                       logger.info("Ignoring block at 0x", std::hex, addr);
+                       continue;
+               }
                logger.info("Starting disassembly of block 0x", std::hex, addr);
 
                bool block_end = false;