예제 #1
0
        protected bool ResolveFrame(UInt32 frame, out TracebackFrame resolved, out Future <TracebackFrame> pendingResolve)
        {
            if (ResolvedSymbolCache.TryGetValue(frame, out resolved))
            {
                pendingResolve = null;
                return(true);
            }

            if (!PendingSymbolResolves.TryGetValue(frame, out pendingResolve))
            {
                var f    = PendingSymbolResolves[frame] = new Future <TracebackFrame>();
                var item = new PendingSymbolResolve(frame, f);

                SymbolResolveQueue.Enqueue(item);
            }

            return(false);
        }
예제 #2
0
        protected bool ResolveFrame(UInt32 frame, out TracebackFrame resolved, out Future<TracebackFrame> pendingResolve)
        {
            if (ResolvedSymbolCache.TryGetValue(frame, out resolved)) {
                pendingResolve = null;
                return true;
            }

            if (!PendingSymbolResolves.TryGetValue(frame, out pendingResolve)) {
                var f = PendingSymbolResolves[frame] = new Future<TracebackFrame>();
                var item = new PendingSymbolResolve(frame, f);

                SymbolResolveQueue.Enqueue(item);
            }

            return false;
        }