diff --git a/Ghidra/Features/VersionTracking/src/main/java/ghidra/feature/vt/gui/plugin/AddressCorrelatorManager.java b/Ghidra/Features/VersionTracking/src/main/java/ghidra/feature/vt/gui/plugin/AddressCorrelatorManager.java index 78cb7b2a48..7f2d0b611c 100644 --- a/Ghidra/Features/VersionTracking/src/main/java/ghidra/feature/vt/gui/plugin/AddressCorrelatorManager.java +++ b/Ghidra/Features/VersionTracking/src/main/java/ghidra/feature/vt/gui/plugin/AddressCorrelatorManager.java @@ -27,6 +27,7 @@ import ghidra.framework.options.*; import ghidra.program.model.listing.Data; import ghidra.program.model.listing.Function; import ghidra.program.util.*; +import ghidra.util.Msg; import ghidra.util.classfinder.ClassSearcher; public class AddressCorrelatorManager { @@ -82,6 +83,16 @@ public class AddressCorrelatorManager { correlatorList.addAll(initializeAddressCorrelators()); correlatorList.sort(CORRELATOR_COMPARATOR); + + StringBuilder buffy = new StringBuilder(); + for (AddressCorrelator ac : correlatorList) { + buffy.append(ac.getClass().getSimpleName()) + .append("; priority: ") + .append(ac.getPriority()) + .append('\n'); + } + + Msg.trace(this, "Finished assembling correlators. Sorted list:\n" + buffy); } private List initializeAddressCorrelators() { @@ -101,9 +112,13 @@ public class AddressCorrelatorManager { private AddressCorrelation getFunctionCorrelator(Function source, Function destination) { + Msg.trace(this, "Source / Destination functions: " + source + "; " + destination); + for (AddressCorrelator correlator : correlatorList) { + Msg.trace(this, "\tchecking correlator: " + correlator.getClass().getSimpleName()); AddressCorrelation correlation = correlator.correlate(source, destination); if (correlation != null) { + Msg.trace(this, "\t\tusing correlator: " + correlator); return correlation; } } diff --git a/Ghidra/Features/VersionTracking/src/test.slow/java/ghidra/feature/vt/api/correlator/address/AddressCorrelationTest.java b/Ghidra/Features/VersionTracking/src/test.slow/java/ghidra/feature/vt/api/correlator/address/AddressCorrelationTest.java index 69b1b6a6f6..1e260d3ad6 100644 --- a/Ghidra/Features/VersionTracking/src/test.slow/java/ghidra/feature/vt/api/correlator/address/AddressCorrelationTest.java +++ b/Ghidra/Features/VersionTracking/src/test.slow/java/ghidra/feature/vt/api/correlator/address/AddressCorrelationTest.java @@ -375,6 +375,7 @@ public class AddressCorrelationTest extends AbstractGhidraHeadedIntegrationTest boolean canBeNoAddress) { Collection appliableMarkupItems = controller.getMatchInfo(testMatch).getAppliableMarkupItems(TaskMonitor.DUMMY); // Initialize the cache. + for (VTMarkupItem vtMarkupItem : appliableMarkupItems) { Address markupDestAddress = vtMarkupItem.getDestinationAddress(); boolean isNoAddress =