BitFields - added preliminary support for composite bitfields

This commit is contained in:
ghidra1 2019-03-26 15:23:27 -04:00
parent c23ae691e2
commit a7345527c9
209 changed files with 18617 additions and 6720 deletions

View file

@ -15,11 +15,13 @@
*/
package pdb;
import java.io.File;
import java.lang.reflect.InvocationTargetException;
import docking.DockingWindowManager;
import docking.widgets.dialogs.MultiLineMessageDialog;
import ghidra.app.plugin.core.analysis.*;
import ghidra.app.services.DataTypeManagerService;
import ghidra.app.util.bin.format.pdb.PdbException;
import ghidra.app.util.bin.format.pdb.PdbParserNEW;
import ghidra.app.util.importer.MessageLog;
@ -32,13 +34,15 @@ import ghidra.util.task.Task;
import ghidra.util.task.TaskMonitor;
class LoadPdbTask extends Task {
private PdbParserNEW parser;
private File pdbFile;
private DataTypeManagerService service;
private final Program program;
LoadPdbTask(Program program, PdbParserNEW parser) {
LoadPdbTask(Program program, File pdbFile, DataTypeManagerService service) {
super("Loading PDB...", true, false, false);
this.program = program;
this.parser = parser;
this.pdbFile = pdbFile;
this.service = service;
}
@Override
@ -56,9 +60,12 @@ class LoadPdbTask extends Task {
public boolean analysisWorkerCallback(Program currentProgram, Object workerContext,
TaskMonitor currentMonitor) throws Exception, CancelledException, PdbException {
PdbParserNEW parser =
new PdbParserNEW(pdbFile, program, service, true, currentMonitor);
parser.parse();
parser.openDataTypeArchives();
parser.applyTo(currentMonitor, log);
parser.applyTo(log);
analyzeSymbols(currentMonitor, log);
return !monitor.isCancelled();