MCPcopy Create free account
hub / github.com/WheretIB/nullc / PipeThread

Function PipeThread

SuperCalc.cpp:1856–1904  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1854}
1855
1856DWORD WINAPI PipeThread(void* param)
1857{
1858 PipeData data;
1859
1860 while(!param)
1861 {
1862 int result = RemoteData::SocketReceive(RemoteData::sck, (char*)&data, sizeof(data), 5);
1863 if(!result || result == -1 || result != sizeof(data) || data.cmd != DEBUG_BREAK_HIT)
1864 {
1865 continue;
1866 }
1867 ShowWindow(hContinue, SW_SHOW);
1868
1869 for(unsigned int i = 0; i < attachedEdits.size(); i++)
1870 {
1871 RichTextarea::ResetLineStyle(attachedEdits[i]);
1872 RichTextarea::UpdateArea(attachedEdits[i]);
1873 RichTextarea::ResetUpdate(attachedEdits[i]);
1874 }
1875 RefreshBreakpoints();
1876
1877 data.cmd = DEBUG_BREAK_STACK;
1878 delete[] RemoteData::stackData;
1879 RemoteData::stackData = PipeReceiveResponce(data);
1880 RemoteData::stackSize = data.data.elemCount;
1881
1882 data.cmd = DEBUG_BREAK_CALLSTACK;
1883 RemoteData::callStack = (unsigned int*)PipeReceiveResponce(data);
1884 RemoteData::callStackFrames = data.data.elemCount;
1885
1886 if(RemoteData::stackData && RemoteData::callStack)
1887 FillVariableInfoTree(true);
1888 TabbedFiles::SetCurrentTab(hDebugTabs, 1);
1889
1890 delete[] RemoteData::callStack;
1891 RemoteData::callStack = NULL;
1892
1893 breakCommand = NULLC_BREAK_PROCEED;
1894 WaitForSingleObject(breakResponse, INFINITE);
1895
1896 data.cmd = DEBUG_BREAK_CONTINUE;
1897 data.question = false;
1898 data.debug.breakInst = breakCommand;
1899 if(!PipeSendRequest(data))
1900 break;
1901 }
1902
1903 ExitThread(0);
1904}
1905
1906unsigned int PipeReuqestData(DebugCommand cmd, void **ptr)
1907{

Callers

nothing calls this directly

Calls 6

RefreshBreakpointsFunction · 0.85
PipeReceiveResponceFunction · 0.85
FillVariableInfoTreeFunction · 0.85
PipeSendRequestFunction · 0.85
SocketReceiveFunction · 0.70
sizeMethod · 0.45

Tested by

no test coverage detected