Exemple #1
0
void CDebugger::ActivateView(unsigned int nView)
{
	if(m_nCurrentView == nView) return;

	if(m_nCurrentView != -1)
	{
		SaveBytesPerLine();
		SaveViewLayout();
		GetCurrentView()->Hide();
	}

	m_findCallersRequestConnection.disconnect();

	m_nCurrentView = nView;
	LoadViewLayout();
	LoadBytesPerLine();
	UpdateTitle();

	{
		auto biosDebugInfoProvider = GetCurrentView()->GetBiosDebugInfoProvider();
		m_pFunctionsView->SetContext(GetCurrentView()->GetContext(), biosDebugInfoProvider);
		m_threadsView->SetContext(GetCurrentView()->GetContext(), biosDebugInfoProvider);
	}

	if(GetDisassemblyWindow()->IsVisible())
	{
		GetDisassemblyWindow()->SetFocus();
	}

	m_findCallersRequestConnection = GetCurrentView()->GetDisassemblyWindow()->GetDisAsm()->FindCallersRequested.connect(
		[&] (uint32 address) { OnFindCallersRequested(address); });
}
Exemple #2
0
void CDebugger::UpdateTitle()
{
	std::tstring sTitle(_T("Play! - Debugger"));

	if(GetCurrentView() != NULL)
	{
		sTitle += 
			_T(" - [ ") + 
			string_cast<std::tstring>(GetCurrentView()->GetName()) +
			_T(" ]");
	}

	SetText(sTitle.c_str());
}
Exemple #3
0
void PlotDefC::ChangeView(const Coord3D&  scaleFactor)
{
    Coord3D viewCenter = GetNewViewCenter();
    if (viewCenter.CoordIsNull())
        return;

    Limit3D oldLimits = GetCurrentViewLimits();
    Limit3D newLimits;

    PC_ViewOpRec axesSettings = GetPlotViewOps();

    DoOp(axesSettings.xOp, viewCenter.cX,
                           oldLimits.minLim.cX, oldLimits.maxLim.cX,
                           scaleFactor.cX,
                           newLimits.minLim.cX, newLimits.maxLim.cX);
    DoOp(axesSettings.yOp, viewCenter.cY,
                           oldLimits.minLim.cY, oldLimits.maxLim.cY,
                           scaleFactor.cY,
                           newLimits.minLim.cY, newLimits.maxLim.cY);
    DoOp(axesSettings.zOp, viewCenter.cZ,
                           oldLimits.minLim.cZ, oldLimits.maxLim.cZ,
                           scaleFactor.cZ,
                           newLimits.minLim.cZ, newLimits.maxLim.cZ);

    // keep existing 3D az/scale/el
    PC_View currView = GetCurrentView();

    //  clear translations
    currView.translation = Coord3D(0.0);

    //  set new limits
    currView.viewLimits = newLimits;
    plotViews.PushStack(currView);
    ResetView();
}
Exemple #4
0
void CDebugger::OnFindCallersRequested(uint32 address)
{
	auto context = GetCurrentView()->GetContext();

	m_findCallersView->FindCallers(context, address);
	m_findCallersView->Show(SW_SHOW);
	m_findCallersView->SetFocus();
}
Exemple #5
0
void PlotDefC::ViewPropagate()
{
    PC_View currView = GetCurrentView();
    for (int i = 0; i < plotList.Size(); i++)
    {
        PlotDefC& pl = plotList.GetRef(i);
        if ((&pl != this) && (typeid(pl) == typeid(*this)))
            pl.ChangeView(currView);
    }
}
int AW_CMultiViewSplitter::HideCurrentView(int nRow, int nCol)
{
	int prevID;
	CWnd * pCurView = GetCurrentView(nRow, nCol, &prevID);
	if (pCurView == NULL)
		return -1;
	else
	{
		pCurView->SetDlgCtrlID(0);
		pCurView->ShowWindow(SW_HIDE);	
		return prevID;
	}
}
Exemple #7
0
void CDebugger::StepCPU()
{
	if(m_virtualMachine.GetStatus() == CVirtualMachine::RUNNING)
	{
		MessageBeep(-1);
		return;
	}
	
	if(::GetParent(GetFocus()) != GetDisassemblyWindow()->m_hWnd)
	{
		GetDisassemblyWindow()->SetFocus();
	}

	GetCurrentView()->Step();
}
Exemple #8
0
void CDebugger::ActivateView(unsigned int nView)
{
	if(m_nCurrentView == nView) return;

	if(m_nCurrentView != -1)
	{
		SaveViewLayout();
		GetCurrentView()->Hide();
	}

	m_nCurrentView = nView;
	LoadViewLayout();
	UpdateTitle();
	{
		auto biosDebugInfoProvider = GetCurrentView()->GetBiosDebugInfoProvider();
		m_pFunctionsView->SetContext(GetCurrentView()->GetContext(), biosDebugInfoProvider);
		m_threadsView->SetContext(GetCurrentView()->GetContext(), biosDebugInfoProvider);
	}

	if(GetDisassemblyWindow()->IsVisible())
	{
		GetDisassemblyWindow()->SetFocus();
	}
}
Exemple #9
0
void CShellTreeCtrl::OnClick(NMHDR* pNMHDR, LRESULT* pResult)
{
	LPTVITEMDATA	lptvid;
	char		szBuff[MAX_PATH];
	HTREEITEM		hItem=NULL;

	CPoint pt;
	UINT uFlags;

	GetCursorPos(&pt);
	ScreenToClient(&pt);
	hItem = HitTest(pt, &uFlags);

	if(hItem == NULL || !(TVHT_ONITEM & uFlags))
		return;

	lptvid=(LPTVITEMDATA)GetItemData(hItem);

	if(SHGetPathFromIDList(lptvid->lpifq,szBuff))
	{
		OFSTRUCT ofs;
		if(OpenFile(szBuff, &ofs, OF_EXIST) != HFILE_ERROR)
		{
			//is exe?
			CString s = szBuff;
			if(s.Right(4)==".exe" || s.Right(4)==".EXE")
				ShellExecute(NULL, "open", szBuff , "", NULL, SW_SHOW );
			else
			{
				CMyIEView* pvw = GetCurrentView(1, bFileInNewWindow);
				if(pvw!=NULL)
				{
					pvw->ToNavigate(szBuff,0,NULL);
				}
			}
		}
		else
			Expand(hItem, TVE_TOGGLE);
	}
}
Exemple #10
0
LRESULT
CDeviceView::OnAction(
    _In_ UINT Action
)
{
    switch (Action)
    {
        case IDC_PROPERTIES:
        {
            DisplayPropertySheet();
            break;
        }

        case IDC_SCAN_HARDWARE:
        {
            Refresh(GetCurrentView(),
                    true,
                    true);
            break;
        }

        case IDC_ENABLE_DRV:
        {
            bool NeedsReboot;
            if (EnableSelectedDevice(true, NeedsReboot) &&
                NeedsReboot)
            {
                MessageBox(m_hMainWnd, L"Rebooting", L"Enable", MB_OK);
            }
            break;
        }

        case IDC_DISABLE_DRV:
        {
            bool NeedsReboot;
            EnableSelectedDevice(false, NeedsReboot);
            break;
        }

        case IDC_UPDATE_DRV:
        {
            bool NeedsReboot;
            UpdateSelectedDevice(NeedsReboot);
            break;
        }

        case IDC_UNINSTALL_DRV:
        {
            UninstallSelectedDevice();
            break;
        }

        case IDC_ADD_HARDWARE:
        {
            RunAddHardwareWizard();
            break;
        }
    }

    return 0;
}
Exemple #11
0
CCallStackWnd* CDebugger::GetCallStackWindow()
{
	return GetCurrentView()->GetCallStackWindow();
}
Exemple #12
0
CRegViewWnd* CDebugger::GetRegisterViewWindow()
{
	return GetCurrentView()->GetRegisterViewWindow();
}
Exemple #13
0
CMemoryViewMIPSWnd* CDebugger::GetMemoryViewWindow()
{
	return GetCurrentView()->GetMemoryViewWindow();
}
Exemple #14
0
CDisAsmWnd* CDebugger::GetDisassemblyWindow()
{
	return GetCurrentView()->GetDisassemblyWindow();
}
Exemple #15
0
CMIPS* CDebugger::GetContext()
{
	return GetCurrentView()->GetContext();
}