1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-09 12:02:21 +02:00

Fixes to debugging source-server files

This commit is contained in:
Brian Fiete 2019-09-23 13:48:11 -07:00
parent aa313a1a9d
commit 6143c617b7
7 changed files with 29 additions and 19 deletions

View file

@ -2,5 +2,9 @@ namespace System
{ {
struct Void : void struct Void : void
{ {
public override void ToString(String strBuffer)
{
strBuffer.Append("void");
}
} }
} }

View file

@ -6124,6 +6124,8 @@ namespace IDE
var args = outFileInfo.Split!('\n'); var args = outFileInfo.Split!('\n');
if (args.Count == 3) if (args.Count == 3)
{ {
aliasFilePath = scope:: String(filePath);
filePath.Set(args[0]); filePath.Set(args[0]);
loadCmd = scope:: String(args[1]); loadCmd = scope:: String(args[1]);
} }

View file

@ -2669,6 +2669,7 @@ namespace IDE.ui
if (mTrackedTextElementViewList == null) if (mTrackedTextElementViewList == null)
{ {
String findFileName = mFilePath; String findFileName = mFilePath;
String srcFileName = mAliasFilePath ?? mFilePath;
mTrackedTextElementViewList = new List<TrackedTextElementView>(); mTrackedTextElementViewList = new List<TrackedTextElementView>();
if (mFilePath == null) if (mFilePath == null)
@ -2686,7 +2687,7 @@ namespace IDE.ui
for (var breakpoint in debugManager.mBreakpointList) for (var breakpoint in debugManager.mBreakpointList)
{ {
if ((breakpoint.mFileName != null) && (Path.Equals(breakpoint.mFileName, findFileName))) if ((breakpoint.mFileName != null) && (Path.Equals(breakpoint.mFileName, srcFileName)))
{ {
var breakpointView = new TrackedTextElementView(breakpoint); var breakpointView = new TrackedTextElementView(breakpoint);
UpdateTrackedElementView(breakpointView); UpdateTrackedElementView(breakpointView);
@ -3681,7 +3682,7 @@ namespace IDE.ui
if (gApp.mDebugger.mIsRunning) if (gApp.mDebugger.mIsRunning)
foundPosition = RemapActiveToCompiledLine(curCompileIdx, ref lineIdx, ref lineCharIdx); foundPosition = RemapActiveToCompiledLine(curCompileIdx, ref lineIdx, ref lineCharIdx);
bool createNow = foundPosition || !mIsBeefSource; // Only be strict about Beef source bool createNow = foundPosition || !mIsBeefSource; // Only be strict about Beef source
Breakpoint newBreakpoint = debugManager.CreateBreakpoint_Create(mFilePath, lineIdx, lineCharIdx, -1); Breakpoint newBreakpoint = debugManager.CreateBreakpoint_Create(mAliasFilePath ?? mFilePath, lineIdx, lineCharIdx, -1);
newBreakpoint.mThreadId = threadId; newBreakpoint.mThreadId = threadId;
debugManager.CreateBreakpoint_Finish(newBreakpoint, createNow); debugManager.CreateBreakpoint_Finish(newBreakpoint, createNow);
int newDrawLineNum = GetDrawLineNum(newBreakpoint); int newDrawLineNum = GetDrawLineNum(newBreakpoint);

View file

@ -111,7 +111,7 @@ bool DbgSymRequest::Get(const StringImpl& url, const StringImpl& destPath, NetRe
{ {
if (mIsPreCache) if (mIsPreCache)
{ {
auto netResult = mDbgSymSrv->mDebugger->mDebugManager->mNetManager->QueueGet(url, destPath); auto netResult = mDbgSymSrv->mDebugger->mDebugManager->mNetManager->QueueGet(url, destPath, true);
if (chainNetResult != NULL) if (chainNetResult != NULL)
{ {
if ((*chainNetResult != NULL) && (netResult != NULL)) if ((*chainNetResult != NULL) && (netResult != NULL))

View file

@ -1620,7 +1620,7 @@ BF_EXPORT NetResult* HTTP_GetFile(char* url, char* destPath)
{ {
AutoCrit autoCrit(gDebugManager->mNetManager->mThreadPool.mCritSect); AutoCrit autoCrit(gDebugManager->mNetManager->mThreadPool.mCritSect);
auto netResult = gDebugManager->mNetManager->QueueGet(url, destPath); auto netResult = gDebugManager->mNetManager->QueueGet(url, destPath, false);
netResult->mDoneEvent = new SyncEvent(); netResult->mDoneEvent = new SyncEvent();
return netResult; return netResult;
} }

View file

@ -447,7 +447,7 @@ NetManager::~NetManager()
} }
} }
NetRequest* NetManager::CreateGetRequest(const StringImpl& url, const StringImpl& destPath) NetRequest* NetManager::CreateGetRequest(const StringImpl& url, const StringImpl& destPath, bool useCache)
{ {
AutoCrit autoCrit(mThreadPool.mCritSect); AutoCrit autoCrit(mThreadPool.mCritSect);
@ -462,6 +462,8 @@ NetRequest* NetManager::CreateGetRequest(const StringImpl& url, const StringImpl
netResult->mFailed = false; netResult->mFailed = false;
netResult->mCurRequest = netRequest; netResult->mCurRequest = netRequest;
if (useCache)
{
NetResult** netResultPtr; NetResult** netResultPtr;
if (mCachedResults.TryAdd(url, NULL, &netResultPtr)) if (mCachedResults.TryAdd(url, NULL, &netResultPtr))
{ {
@ -472,17 +474,18 @@ NetRequest* NetManager::CreateGetRequest(const StringImpl& url, const StringImpl
mOldResults.Add(*netResultPtr); mOldResults.Add(*netResultPtr);
*netResultPtr = netResult; *netResultPtr = netResult;
} }
}
netRequest->mResult = netResult; netRequest->mResult = netResult;
return netRequest; return netRequest;
} }
NetResult* NetManager::QueueGet(const StringImpl& url, const StringImpl& destPath) NetResult* NetManager::QueueGet(const StringImpl& url, const StringImpl& destPath, bool useCache)
{ {
BfLogDbg("NetManager queueing %s\n", url.c_str()); BfLogDbg("NetManager queueing %s %d\n", url.c_str(), useCache);
auto netRequest = CreateGetRequest(url, destPath); auto netRequest = CreateGetRequest(url, destPath, useCache);
auto netResult = netRequest->mResult; auto netResult = netRequest->mResult;
mThreadPool.AddJob(netRequest); mThreadPool.AddJob(netRequest);
return netResult; return netResult;
@ -524,7 +527,7 @@ bool NetManager::Get(const StringImpl& url, const StringImpl& destPath)
} }
else else
{ {
netRequest = CreateGetRequest(url, destPath); netRequest = CreateGetRequest(url, destPath, true);
break; break;
} }
} }

View file

@ -109,8 +109,8 @@ public:
NetManager(); NetManager();
~NetManager(); ~NetManager();
NetRequest* CreateGetRequest(const StringImpl& url, const StringImpl& destPath); NetRequest* CreateGetRequest(const StringImpl& url, const StringImpl& destPath, bool useCache);
NetResult* QueueGet(const StringImpl& url, const StringImpl& destPath); NetResult* QueueGet(const StringImpl& url, const StringImpl& destPath, bool useCache);
bool Get(const StringImpl& url, const StringImpl& destPath); bool Get(const StringImpl& url, const StringImpl& destPath);
void CancelAll(); void CancelAll();