use of com.google.security.zynamics.zylib.general.Pair in project binnavi by google.
the class ZyGraphTest method createEdgeForAddedEdgeTests.
private Pair<CNaviViewEdge, com.google.security.zynamics.binnavi.yfileswrap.zygraph.NaviEdge> createEdgeForAddedEdgeTests() {
final INaviViewNode source = m_view.getGraph().getNodes().get(0);
final INaviViewNode target = m_view.getGraph().getNodes().get(1);
final CNaviViewEdge edge = m_graph.getRawView().getContent().createEdge(source, target, EdgeType.ENTER_INLINED_FUNCTION);
final com.google.security.zynamics.binnavi.yfileswrap.zygraph.NaviEdge cnn = searchEdge(getEdges(m_graph), edge);
return new Pair<CNaviViewEdge, com.google.security.zynamics.binnavi.yfileswrap.zygraph.NaviEdge>(edge, cnn);
}
use of com.google.security.zynamics.zylib.general.Pair in project binnavi by google.
the class DebuggerTest method testlisteners0.
@Test
public void testlisteners0() throws DebugExceptionWrapper, MaybeNullException, ParserConfigurationException, SAXException, IOException {
mockDebugger.connect();
mockDebugger.getProcessManager().addThread(new TargetProcessThread(0, ThreadState.RUNNING));
mockDebugger.getProcessManager().setTargetInformation(new TargetInformation(5, Lists.newArrayList(new RegisterDescription("eax", 4, true), new RegisterDescription("ebx", 4, false)), new DebuggerOptions(false, false, false, false, false, false, false, false, false, false, 12, 0, new ArrayList<DebuggerException>(), false, false, false)));
mockDebugger.connection.m_synchronizer.receivedEvent(DebuggerMessageBuilder.buildProcessStartReply(CommonTestObjects.MEMORY_MODULE));
mockDebugger.getProcessManager().getThread(0).setCurrentAddress(new RelocatedAddress(new CAddress(0)));
mockDebugger.getBreakpointManager().addBreakpoints(BreakpointType.ECHO, CommonTestObjects.BP_ADDRESS_123_SET);
final ArrayList<Pair<RelocatedAddress, Integer>> list = new ArrayList<Pair<RelocatedAddress, Integer>>();
mockDebugger.connection.m_synchronizer.receivedEvent(new EchoBreakpointSetReply(0, 0, list));
mockDebugger.connection.m_synchronizer.receivedEvent(new EchoBreakpointSetReply(0, 0, list));
mockDebugger.connection.m_synchronizer.receivedEvent(new EchoBreakpointsRemovedReply(0, 0, list));
mockDebugger.connection.m_synchronizer.receivedEvent(new EchoBreakpointsRemovedReply(0, 0, list));
mockDebugger.connection.m_synchronizer.receivedEvent(new ExceptionOccurredReply(0, 0, 0, 0, new RelocatedAddress(new CAddress(0)), "Test exception"));
mockDebugger.connection.m_synchronizer.receivedEvent(new HaltReply(0, 0, 0));
mockDebugger.connection.m_synchronizer.receivedEvent(new HaltReply(0, 0, 1));
mockDebugger.connection.m_synchronizer.receivedEvent(new ListFilesReply(0, 0, RemoteFileSystem.parse("<foo></foo>".getBytes())));
mockDebugger.connection.m_synchronizer.receivedEvent(new ListFilesReply(0, 1, null));
mockDebugger.connection.m_synchronizer.receivedEvent(new ListProcessesReply(0, 0, ProcessList.parse("<foo></foo>".getBytes())));
mockDebugger.connection.m_synchronizer.receivedEvent(new ListProcessesReply(0, 1, null));
mockDebugger.connection.m_synchronizer.receivedEvent(new MemoryMapReply(0, 0, new MemoryMap(new ArrayList<MemorySection>())));
mockDebugger.connection.m_synchronizer.receivedEvent(new MemoryMapReply(0, 1, null));
mockDebugger.connection.m_synchronizer.receivedEvent(new ModuleLoadedReply(0, 0, new MemoryModule("XXX", "YYYXXX", new RelocatedAddress(new CAddress(0)), 0), new TargetProcessThread(123, ThreadState.SUSPENDED)));
mockDebugger.connection.m_synchronizer.receivedEvent(new ModuleUnloadedReply(0, 0, new MemoryModule("XXX", "YYYXXX", new RelocatedAddress(new CAddress(0)), 0)));
mockDebugger.connection.m_synchronizer.receivedEvent(new ProcessClosedReply(0, 0));
mockDebugger.connection.m_synchronizer.receivedEvent(new ReadMemoryReply(0, 0, new CAddress(0), new byte[8]));
mockDebugger.connection.m_synchronizer.receivedEvent(new ReadMemoryReply(0, 1, null, null));
mockDebugger.connection.m_synchronizer.receivedEvent(new RegistersReply(0, 0, new RegisterValues(new FilledList<ThreadRegisters>())));
mockDebugger.connection.m_synchronizer.receivedEvent(new RegistersReply(0, 1, null));
mockDebugger.connection.m_synchronizer.receivedEvent(new RequestTargetReply(0, 0));
mockDebugger.connection.m_synchronizer.receivedEvent(new RequestTargetReply(0, 1));
mockDebugger.connection.m_synchronizer.receivedEvent(new ResumeReply(0, 0));
mockDebugger.connection.m_synchronizer.receivedEvent(new ResumeReply(0, 1));
}
use of com.google.security.zynamics.zylib.general.Pair in project binnavi by google.
the class CPostgreSQLModuleContentTest method testCModuleContentConstructor.
@Test
public void testCModuleContentConstructor() throws LoadCancelledException, CouldntLoadDataException {
final CModule module = (CModule) getDatabase().getContent().getModules().get(0);
module.load();
final ListenerProvider<IModuleListener> listeners = new ListenerProvider<IModuleListener>();
final CCallgraph callgraph = module.getContent().getNativeCallgraph();
final IFilledList<INaviFunction> functions = new FilledList<INaviFunction>();
functions.add(module.getContent().getFunctionContainer().getFunctions().get(0));
final ICallgraphView nativeCallgraph = module.getContent().getViewContainer().getNativeCallgraphView();
final ImmutableList<IFlowgraphView> nativeFlowgraphs = module.getContent().getViewContainer().getNativeFlowgraphViews();
final List<INaviView> customViews = new ArrayList<INaviView>();
final ImmutableBiMap<INaviView, INaviFunction> viewFunctionMap = new ImmutableBiMap.Builder<INaviView, INaviFunction>().build();
new Pair<HashMap<INaviView, INaviFunction>, HashMap<INaviFunction, INaviView>>(null, null);
final IFilledList<TraceList> traces = new FilledList<TraceList>();
final SectionContainer sections = new SectionContainer(new SectionContainerBackend(getProvider(), module));
final TypeInstanceContainer instances = new TypeInstanceContainer(new TypeInstanceContainerBackend(getProvider(), module, module.getTypeManager(), sections), getProvider());
final CModuleContent moduleContent1 = new CModuleContent(module, getProvider(), listeners, callgraph, functions, nativeCallgraph, nativeFlowgraphs, customViews, viewFunctionMap, traces, sections, instances);
assertNotNull(moduleContent1);
try {
@SuppressWarnings("unused") final CModuleContent moduleContent = new CModuleContent(null, null, null, null, null, null, null, null, null, null, sections, instances);
fail();
} catch (final NullPointerException e) {
}
try {
@SuppressWarnings("unused") final CModuleContent moduleContent = new CModuleContent(module, null, null, null, null, null, null, null, null, null, null, null);
fail();
} catch (final NullPointerException e) {
}
try {
@SuppressWarnings("unused") final CModuleContent moduleContent = new CModuleContent(module, getProvider(), null, null, null, null, null, null, null, null, null, null);
fail();
} catch (final NullPointerException e) {
}
try {
@SuppressWarnings("unused") final CModuleContent moduleContent = new CModuleContent(module, getProvider(), listeners, null, null, null, null, null, null, null, null, null);
fail();
} catch (final NullPointerException e) {
}
try {
@SuppressWarnings("unused") final CModuleContent moduleContent = new CModuleContent(module, getProvider(), listeners, callgraph, null, null, null, null, null, null, null, null);
fail();
} catch (final NullPointerException e) {
}
try {
@SuppressWarnings("unused") final CModuleContent moduleContent = new CModuleContent(module, getProvider(), listeners, callgraph, functions, null, null, null, null, null, null, null);
fail();
} catch (final NullPointerException e) {
}
try {
@SuppressWarnings("unused") final CModuleContent moduleContent = new CModuleContent(module, getProvider(), listeners, callgraph, functions, nativeCallgraph, null, null, null, null, null, null);
fail();
} catch (final NullPointerException e) {
}
try {
@SuppressWarnings("unused") final CModuleContent moduleContent = new CModuleContent(module, getProvider(), listeners, callgraph, functions, nativeCallgraph, nativeFlowgraphs, null, null, null, null, null);
fail();
} catch (final NullPointerException e) {
}
try {
@SuppressWarnings("unused") final CModuleContent moduleContent = new CModuleContent(module, getProvider(), listeners, callgraph, functions, nativeCallgraph, nativeFlowgraphs, customViews, null, null, null, null);
fail();
} catch (final NullPointerException e) {
}
try {
@SuppressWarnings("unused") final CModuleContent moduleContent = new CModuleContent(module, getProvider(), listeners, callgraph, functions, nativeCallgraph, nativeFlowgraphs, customViews, viewFunctionMap, null, null, null);
fail();
} catch (final NullPointerException e) {
}
try {
@SuppressWarnings("unused") final CModuleContent moduleContent = new CModuleContent(module, getProvider(), listeners, callgraph, functions, nativeCallgraph, nativeFlowgraphs, customViews, viewFunctionMap, traces, null, null);
fail();
} catch (final NullPointerException e) {
}
}
use of com.google.security.zynamics.zylib.general.Pair in project binnavi by google.
the class CViewSettingsGenerator method createSettings.
/**
* Creates the graph settings for a given view.
*
* @param view The view whose graph settings are generated.
*
* @return A pair of raw settings and the generated graph settings object.
*
* @throws CouldntLoadDataException Thrown if the view settings could not be loaded.
*/
public static Pair<Map<String, String>, ZyGraphViewSettings> createSettings(final INaviView view) throws CouldntLoadDataException {
final ZyGraphViewSettings defaultSettings = view.getGraphType() == GraphType.CALLGRAPH ? ConfigManager.instance().getDefaultCallGraphSettings() : ConfigManager.instance().getDefaultFlowGraphSettings();
final Map<String, String> rawSettings = view.loadSettings();
final ZyGraphViewSettings settings = new ZyGraphViewSettings(defaultSettings);
settings.getDisplaySettings().setAnimationSpeed(createIntegerSetting(rawSettings, CViewSettings.ANIMATION_SPEED, defaultSettings.getDisplaySettings().getAnimationSpeed()));
settings.getLayoutSettings().setAutolayoutActivisionThreshold(createIntegerSetting(rawSettings, CViewSettings.AUTOLAYOUT_THRESHOLD, defaultSettings.getLayoutSettings().getAutolayoutDeactivationThreshold()));
settings.getLayoutSettings().setAutomaticLayouting(createBooleanSetting(rawSettings, CViewSettings.AUTOMATIC_LAYOUTING, defaultSettings.getLayoutSettings().getAutomaticLayouting()));
settings.getLayoutSettings().getCircularSettings().setStyle(createEnumerationSetting(rawSettings, CViewSettings.CIRCULAR_LAYOUT_STYLE, defaultSettings.getLayoutSettings().getCircularSettings().getStyle(), new IParser<CircularStyle>() {
@Override
public CircularStyle parse(final int value) {
return CircularStyle.parseInt(value);
}
}));
settings.getEdgeSettings().setDisplayMultipleEdgesAsOne(createBooleanSetting(rawSettings, CViewSettings.DISPLAY_MULTIPLE_EDGES_AS_ONE, defaultSettings.getEdgeSettings().getDisplayMultipleEdgesAsOne()));
settings.getDisplaySettings().setFunctionNodeInformation(createBooleanSetting(rawSettings, CViewSettings.FUNCTION_NODE_INFORMATION, defaultSettings.getDisplaySettings().getFunctionNodeInformation()));
settings.getDisplaySettings().setGradientBackground(createBooleanSetting(rawSettings, CViewSettings.GRADIENT_BACKGROUND, defaultSettings.getDisplaySettings().getGradientBackground()));
settings.getLayoutSettings().getHierarchicalSettings().setStyle(createEnumerationSetting(rawSettings, CViewSettings.HIERARCHIC_LAYOUT_STYLE, defaultSettings.getLayoutSettings().getHierarchicalSettings().getStyle(), new IParser<HierarchicStyle>() {
@Override
public HierarchicStyle parse(final int value) {
return HierarchicStyle.parseInt(value);
}
}));
settings.getLayoutSettings().setAnimateLayout(createBooleanSetting(rawSettings, CViewSettings.LAYOUT_ANIMATION, defaultSettings.getLayoutSettings().getAnimateLayout()));
settings.getLayoutSettings().setLayoutCalculationTimeWarningThreshold(createIntegerSetting(rawSettings, CViewSettings.LAYOUT_CALCULATION_TRESHOLD, defaultSettings.getLayoutSettings().getLayoutCalculationTimeWarningThreshold()));
settings.getLayoutSettings().getCircularSettings().setMinimumNodeDistance(createIntegerSetting(rawSettings, CViewSettings.MINIMUM_CIRCULAR_NODE_DISTANCE, defaultSettings.getLayoutSettings().getCircularSettings().getMinimumNodeDistance()));
settings.getLayoutSettings().getHierarchicalSettings().setMinimumEdgeDistance(createIntegerSetting(rawSettings, CViewSettings.MINIMUM_HIERARCHIC_EDGE_DISTANCE, defaultSettings.getLayoutSettings().getHierarchicalSettings().getMinimumEdgeDistance()));
settings.getLayoutSettings().getHierarchicalSettings().setMinimumLayerDistance(createIntegerSetting(rawSettings, CViewSettings.MINIMUM_HIERARCHIC_LAYER_DISTANCE, defaultSettings.getLayoutSettings().getHierarchicalSettings().getMinimumLayerDistance()));
settings.getLayoutSettings().getHierarchicalSettings().setMinimumNodeDistance(createIntegerSetting(rawSettings, CViewSettings.MINIMUM_HIERARCHIC_NODE_DISTANCE, defaultSettings.getLayoutSettings().getHierarchicalSettings().getMinimumNodeDistance()));
settings.getLayoutSettings().getOrthogonalSettings().setMinimumNodeDistance(createIntegerSetting(rawSettings, CViewSettings.MINIMUM_ORTHOGONAL_NODE_DISTANCE, defaultSettings.getLayoutSettings().getOrthogonalSettings().getMinimumNodeDistance()));
settings.getMouseSettings().setMousewheelAction(createEnumerationSetting(rawSettings, CViewSettings.MOUSEWHEEL_ACTION, defaultSettings.getMouseSettings().getMouseWheelAction(), new IParser<MouseWheelAction>() {
@Override
public MouseWheelAction parse(final int value) throws ParseException {
return MouseWheelAction.parseInt(value);
}
}));
settings.getLayoutSettings().getOrthogonalSettings().setStyle(createEnumerationSetting(rawSettings, CViewSettings.ORTHOGONAL_LAYOUT_STYLE, defaultSettings.getLayoutSettings().getOrthogonalSettings().getStyle(), new IParser<OrthogonalStyle>() {
@Override
public OrthogonalStyle parse(final int value) {
return OrthogonalStyle.parseInt(value);
}
}));
settings.getLayoutSettings().getOrthogonalSettings().setOrientation(createEnumerationSetting(rawSettings, CViewSettings.ORTHOGONAL_ORIENTATION, defaultSettings.getLayoutSettings().getOrthogonalSettings().getOrientation(), new IParser<OrthogonalOrientation>() {
@Override
public OrthogonalOrientation parse(final int value) {
return OrthogonalOrientation.parseInt(value);
}
}));
settings.getProximitySettings().setProximityBrowsing(createBooleanSetting(rawSettings, CViewSettings.PROXIMITY_BROWSING, defaultSettings.getProximitySettings().getProximityBrowsing()));
settings.getProximitySettings().setProximityBrowsingActivationThreshold(createIntegerSetting(rawSettings, CViewSettings.PROXIMITY_BROWSING_THRESHOLD, defaultSettings.getProximitySettings().getProximityBrowsingActivationThreshold()));
settings.getProximitySettings().setProximityBrowsingChildren(createIntegerSetting(rawSettings, CViewSettings.PROXIMITY_BROWSING_CHILDREN, defaultSettings.getProximitySettings().getProximityBrowsingChildren()));
settings.getProximitySettings().setProximityBrowsingFrozen(createBooleanSetting(rawSettings, CViewSettings.PROXIMITY_BROWSING_FROZEN, defaultSettings.getProximitySettings().getProximityBrowsingFrozen()));
settings.getProximitySettings().setProximityBrowsingPreview(createBooleanSetting(rawSettings, CViewSettings.PROXIMITY_BROWSING_PREVIEW, defaultSettings.getProximitySettings().getProximityBrowsingPreview()));
settings.getProximitySettings().setProximityBrowsingParents(createIntegerSetting(rawSettings, CViewSettings.PROXIMITY_BROWSING_PARENTS, defaultSettings.getProximitySettings().getProximityBrowsingParents()));
settings.getMouseSettings().setScrollSensitivity(createIntegerSetting(rawSettings, CViewSettings.SCROLL_SENSIBILITY, defaultSettings.getMouseSettings().getScrollSensitivity()));
settings.getSearchSettings().setSearchCaseSensitive(createBooleanSetting(rawSettings, CViewSettings.SEARCH_CASE_SENSITIVE, defaultSettings.getSearchSettings().getSearchCaseSensitive()));
settings.getSearchSettings().setSearchRegEx(createBooleanSetting(rawSettings, CViewSettings.SEARCH_REGEX, defaultSettings.getSearchSettings().getSearchRegEx()));
settings.getSearchSettings().setSearchSelectedNodesOnly(createBooleanSetting(rawSettings, CViewSettings.SEARCH_SELECTED_ONLY, defaultSettings.getSearchSettings().getSearchSelectedNodesOnly()));
settings.getSearchSettings().setSearchVisibleNodesOnly(createBooleanSetting(rawSettings, CViewSettings.SEARCH_VISIBLE_ONLY, defaultSettings.getSearchSettings().getSearchVisibleNodesOnly()));
settings.getMouseSettings().setZoomSensitivity(createIntegerSetting(rawSettings, CViewSettings.ZOOM_SENSIBILITY, defaultSettings.getMouseSettings().getZoomSensitivity()));
settings.getDisplaySettings().setSimplifiedVariableAccess(createBooleanSetting(rawSettings, CViewSettings.SIMPLIFIED_VARIABLE_ACCESS, defaultSettings.getDisplaySettings().getSimplifiedVariableAccess()));
return new Pair<Map<String, String>, ZyGraphViewSettings>(rawSettings, settings);
}
use of com.google.security.zynamics.zylib.general.Pair in project binnavi by google.
the class BreakpointSetParser method parseSuccess.
@Override
public BreakpointSetReply parseSuccess(final int packetId, final int argumentCount) throws IOException {
final int counter = parseInteger();
final List<Pair<RelocatedAddress, Integer>> addresses = new ArrayList<>();
for (int i = 0; i < counter; i++) {
final RelocatedAddress address = new RelocatedAddress(parseAddress());
final int error = parseInteger();
addresses.add(new Pair<RelocatedAddress, Integer>(address, error));
}
return new BreakpointSetReply(packetId, 0, addresses);
}
Aggregations