public void MacsBug_ScanProcedures() { Given_Link(4); Given_Body(3); Given_Rts(); Given_Variable_Length_Symbol("my_printf"); Given_ProgramData(0); var mem = new ByteMemoryArea(Address.Ptr32(0x00100000), w.ToArray()); var scan = new MacsBugSymbolScanner(arch, mem); var symbols = scan.ScanForSymbols(); Assert.AreEqual(1, symbols.Count); var sym = symbols[0]; Assert.AreEqual(SymbolType.Procedure, sym.Type); Assert.AreEqual("my_printf", sym.Name); Assert.AreEqual(Address.Ptr32(0x00100000), sym.Address); }
public void MacsBug_ScanProcedures_WithConstantData() { Given_Link(4); Given_Body(3); Given_Rts(); Given_Variable_Length_Symbol("some_symbol"); Given_ProgramData(5); Given_Link(4); Given_Body(8); Given_Rts(); Given_Variable_Length_Symbol("other_symbol"); Given_ProgramData(0); Given_Link(6); Given_Body(3); Given_Rts(); // no symbol. var mem = new ByteMemoryArea(Address.Ptr32(0x00100000), w.ToArray()); var scan = new MacsBugSymbolScanner(arch, mem); var symbols = scan.ScanForSymbols(); Assert.AreEqual(2, symbols.Count); }