Merge remote-tracking branch 'origin/GP-4412_Dan_fixDefaultImageForMachO'

This commit is contained in:
Ryan Kurtz 2024-03-28 14:19:49 -04:00
commit fa0cb8d881

View file

@ -37,6 +37,7 @@ import ghidra.debug.api.tracermi.TraceRmiLaunchOffer;
import ghidra.debug.api.tracermi.TraceRmiLaunchOffer.LaunchConfigurator; import ghidra.debug.api.tracermi.TraceRmiLaunchOffer.LaunchConfigurator;
import ghidra.debug.api.tracermi.TraceRmiLaunchOffer.PromptMode; import ghidra.debug.api.tracermi.TraceRmiLaunchOffer.PromptMode;
import ghidra.debug.spi.tracermi.TraceRmiLaunchOpinion; import ghidra.debug.spi.tracermi.TraceRmiLaunchOpinion;
import ghidra.formats.gfilesystem.FSRL;
import ghidra.framework.options.*; import ghidra.framework.options.*;
import ghidra.framework.plugintool.*; import ghidra.framework.plugintool.*;
import ghidra.framework.plugintool.util.PluginStatus; import ghidra.framework.plugintool.util.PluginStatus;
@ -122,11 +123,7 @@ public class TraceRmiLauncherServicePlugin extends Plugin
} }
} }
public static File getProgramPath(Program program) { public static File tryProgramPath(String path) {
if (program == null) {
return null;
}
String path = program.getExecutablePath();
if (path == null) { if (path == null) {
return null; return null;
} }
@ -143,6 +140,26 @@ public class TraceRmiLauncherServicePlugin extends Plugin
} }
} }
public static String extractFirstFsrl(Program program) {
FSRL fsrl = FSRL.fromProgram(program);
if (fsrl == null) {
return null;
}
FSRL first = fsrl.split().get(0);
return first.getPath();
}
public static File getProgramPath(Program program) {
if (program == null) {
return null;
}
File exec = tryProgramPath(program.getExecutablePath());
if (exec != null) {
return exec;
}
return tryProgramPath(extractFirstFsrl(program));
}
protected final ToolOptions options; protected final ToolOptions options;
protected Program currentProgram; protected Program currentProgram;