WebViewer/Microsoft.Diagnostics.Tracing.Stacks/CallTree.cs (15 lines): - line 305: // TODO see can be more concurrent than this. - line 394: // TODO FIX NOW - line 742: // because it confuses the upper level logic TODO: this is kind of a hack. - line 866: // TODO FIX NOW should this be a separate sub-type? - line 1080: // TODO FIX NOW. This is a hack, we know every type of CallTreeNode. - line 1092: // TODO FIX NOW too subtle! This tracing back up the stack is tricky. - line 1106: // so we can simply cast. TODO FIX NOW decide how to not break the abstraction. - line 1116: if (childNode != null) // TODO FIX NOW: I would not think this check would be needed. - line 1132: // TODO FIX NOW, these are arc counts, they should be node counts. (need interning). - line 1186: // TODO the samples are no longer in time order, do we care? - line 1217: // TODO FIX NOW: decide what to do here, we originally did a recursive IsFolable but that causes very little folding. - line 1249: // TODO see if taking the lock in the read case is expensive or not. - line 1335: if (this.Name == "BROKEN") // TODO use ID instead - line 1429: byID = null; // TODO right now we might get duplicates that have the same name but different ID. Give up. - line 1814: // TODO breaking abstraction. WebViewer/Microsoft.Diagnostics.Tracing.Stacks/FilterStacks.cs (13 lines): - line 161: /// TODO Document - line 424: // TODO is this good enough? - line 484: // Try to reuse the slot. Give up an allocate if necessary (TODO we can recycle if it happens frequently) - line 552: // TODO confirm this works right when parentStackInfo == null - line 563: // This is reasonably expensive, so we only do it for MoveNext operations. TODO make this efficient all the time. - line 597: // TODO we are doing a lot of string manipulation. Can we avoid this? - line 725: public bool IsModuleEntry; // TODO IsModuleEntry is an experimental thing. Remove after gathering data. - line 774: var pat = new Regex(ToDotNetRegEx(patStr), RegexOptions.IgnoreCase); // TODO perf bad if you compile! - line 777: // TODO IsModuleEntry is an experiemental thing. Remove after gathering data. - line 800: // TODO IsModuleEntry is an experiemental thing. Remove after gathering data. - line 867: ret[i] = new Regex(ToDotNetRegEx(patStr), RegexOptions.IgnoreCase); // TODO perf bad if you compile! - line 960: public bool IsMoveNext; // As a special case MoveNext we insure 'perfect' recursion removal (TODO: make this work for any method) - line 1091: /// TODO make dynamic. CoreCLRProfiler/native/coreclr_headers/src/pal/src/libunwind/include/libunwind-mips.h (6 lines): - line 50: /* FIXME for MIPS. Too big? What do other things use for similar tasks? */ - line 63: /* FIXME: MIPS ABIs. */ - line 103: /* FIXME: Other registers! */ - line 125: #define UNW_TDEP_NUM_EH_REGS 2 /* FIXME for MIPS. */ - line 133: /* On x86, we can directly use ucontext_t as the unwind context. FIXME for - line 148: registers. FIXME: Not ideal, may not be sufficient for all libunwind WebViewer/Microsoft.Diagnostics.Tracing.Stacks/Stacks.cs (5 lines): - line 525: // TODO assert that the samples are associated with this source. - line 724: // TODO this should be added to the stack source interface and overriden here - line 754: // TODO does this belong in the interner? - line 943: // TODO should we be doing this here? This feels like a presentation transformation - line 1040: // TODO we could make this smaller if we care since BaseFrame and ModuleIndex are never used together. CoreCLRProfiler/native/coreclr_headers/src/pal/src/thread/thread.cpp (5 lines): - line 259: // UNIXTODO Should take pThread parameter here (modify callers) - line 320: // TODO: should do perf test to see how this compares - line 898: // TODO: Is this still needed after removing InternalSuspendThreadFromData? - line 1225: // UNIXTODO: Should log a warning to the event log - line 2321: // @UNIXTODO: This is our last chance to unlink our Mach exception handler from the pseudo-chain we're trying CoreCLRProfiler/native/coreclr_headers/src/pal/src/libunwind/include/libunwind-arm.h (3 lines): - line 54: /* FIXME for ARM. Too big? What do other things use for similar tasks? */ - line 253: #define UNW_TDEP_NUM_EH_REGS 2 /* FIXME for ARM. */ - line 272: registers. FIXME: Not ideal, may not be sufficient for all libunwind WebViewer/Microsoft.BPerf.StackViewer/CallTreeData.cs (3 lines): - line 212: // TODO: needs cleanup - line 218: // TODO: src srv stream needs more support, also talk to VS folks and see how they do SourceLink - line 264: return null; // TODO: need to implement the local case i.e. this is the build machine CoreCLRProfiler/native/coreclr_headers/src/pal/src/map/map.cpp (3 lines): - line 611: // TODO: technically, the file mapping object should hold - line 1033: // TODO: Figure out if we can support mapping at a specific address on Linux. - line 1735: // TODO: can we add configure flags to model the behavior of ftruncate CoreCLRProfiler/native/coreclr_headers/src/inc/holder.h (3 lines): - line 639: // @TODO: Due to prefast template problems, implementations of the DoNothing macro have been changed - line 1124: //@TODO: Dangerous default value. Some Win32 functions return INVALID_HANDLE_VALUE, some return NULL (such as CreatEvent). - line 1364: //@TODO: Would be good to add runtime validation that the return value is used. CoreCLRProfiler/native/coreclr_headers/src/inc/volatile.h (3 lines): - line 48: // @TODO: many of the variables marked volatile in the CLR do not actually need to be - line 54: // @TODO: link to a "Memory Models for CLR Devs" doc here (this doc does not yet exist). - line 320: // @TODO: it's not clear that we actually *want* any operator overloading here. It's in here primarily CoreCLRProfiler/native/coreclr_headers/src/pal/src/init/pal.cpp (3 lines): - line 108: // $$TODO The C++ compiler doesn't like pal/cruntime.h so duplicate the - line 1043: /* TODO: This function may be used to provide a reader/writer-like - line 1055: /* TODO: See comment in PALIsShuttingDown */ CoreCLRProfiler/native/coreclr_headers/src/pal/src/libunwind/src/mips/Gregs.c (3 lines): - line 27: /* FIXME: The following is probably unfinished and/or at least partly bogus. */ - line 85: /* FIXME: IP? Copro & shadow registers? */ - line 98: /* FIXME for MIPS. */ CoreCLRProfiler/native/coreclr_headers/src/inc/utilcode.h (3 lines): - line 863: // TODO: All HRESULT_FROM_WIN32(GetLastError()) should be replaced by calls to - line 2289: // @TODO: Fix this by adding an abstract function Hash() which must be implemented - line 4729: // operator &. TODO: probe with a static_assert? CoreCLRProfiler/native/PrettyPrintSig.cpp (3 lines): - line 174: // swprintf_s(buff, 32, W("%d"), num); // TODO: muks 2019/07/25 we should fix this (used only for MVAR, VAR, etc.) - line 188: // swprintf_s(buff, 32, W("%08X"), num); // TODO: muks 2019/07/25 we should fix this (used only for MVAR, VAR, etc.) - line 343: // TODO what is the syntax for the rank 0 case? CoreCLRProfiler/native/coreclr_headers/src/pal/src/libunwind/src/coredump/_UCD_create.c (3 lines): - line 171: //TODO: check that and abort if it isn't? - line 359: //TODO: else loudly complain? Maybe even fail? - line 363: //TODO: loop and compare in smaller blocks WebViewer/Microsoft.Diagnostics.Tracing.Stacks/GrowableArray.cs (2 lines): - line 229: /// TODO FIX NOW use Func instead. - line 239: /// TODO FIX NOW harmonize with List.BinarySearch WebViewer/Microsoft.Diagnostics.Tracing.Stacks/Histogram.cs (2 lines): - line 289: int valueBucket = (int)(metric / scale * 10); // TODO should we round? - line 315: // TODO we are not symetric, we use digits on the positive side but not negative. CoreCLRProfiler/native/coreclr_headers/src/pal/src/libunwind/src/arm/init.h (2 lines): - line 55: /* FIXME: correct for ARM? */ - line 66: /* FIXME: Initialisation for other registers. */ WebViewer/Microsoft.BPerf.StackInformation.Etw/EtwDeserializer.cs (2 lines): - line 639: // TODO: BUG: yes, it turns out we can multiple stacks for the same event, we just throw older ones. - line 814: // TODO: BUG: yes, it turns out we can pid exiting and starting and so it's possible this will be broken but is good enough CoreCLRProfiler/native/coreclr_headers/src/pal/src/include/pal/thread.hpp (2 lines): - line 697: $$TODO: These are needed only to support cross-process thread duplication - line 749: TODO: how does the perf of pthread_self compare to CoreCLRProfiler/native/coreclr_headers/src/pal/src/libunwind/src/mips/is_fpreg.c (2 lines): - line 27: /* FIXME: I'm not sure if libunwind's GP/FP register distinction is very useful - line 33: /* FIXME: Support FP. */ CoreCLRProfiler/native/coreclr_headers/src/pal/src/exception/signal.cpp (2 lines): - line 400: // TODO: First variable parameter says whether a read (0) or write (non-0) caused the - line 614: // TODO: First variable parameter says whether a read (0) or write (non-0) caused the CoreCLRProfiler/native/coreclr_headers/src/pal/src/exception/machexception.cpp (2 lines): - line 455: // TODO: Identify privileged instruction. Need to get the thread state and read the machine code. May - line 1316: // TODO: it would be nice to preserve the red zone in case a jitter would want to use it CoreCLRProfiler/native/coreclr_headers/src/pal/src/loader/module.cpp (2 lines): - line 154: // UNIXTODO: Implement this! - line 212: // UNIXTODO: Implement this! WebViewer/Microsoft.BPerf.Internal.CabExtraction/CabinetNativeAPI.cs (2 lines): - line 357: // TODO: Should I catch exceptions for the new functions? - line 371: return CabinetNativeApi.FdiOpen(absoluteFilePath, (int)OpFlags.Create, (int)(PermissionMode.Read | PermissionMode.Write)); // TODO: OK to ignore _O_SEQUENTIAL, WrOnly, and _O_BINARY? CoreCLRProfiler/native/coreclr_headers/src/pal/src/libunwind/include/libunwind-tilegx.h (2 lines): - line 115: /* FIXME: Other registers! */ - line 134: #define UNW_TDEP_NUM_EH_REGS 2 /* FIXME for TILEGX. */ CoreCLRProfiler/native/coreclr_headers/src/pal/src/libunwind/include/libunwind-s390x.h (2 lines): - line 99: /* TODO: access, vector registers */ - line 107: /* TODO: placeholders */ CoreCLRProfiler/native/coreclr_headers/src/pal/src/libunwind/src/arm/Gregs.c (2 lines): - line 62: /* FIXME: Initialise coprocessor & shadow registers? */ - line 75: /* FIXME for ARM. */ CoreCLRProfiler/native/coreclr_headers/src/pal/src/thread/process.cpp (2 lines): - line 1458: // TODO: Convert uExitCodes into sysexits(3)? - line 2741: // TODO: check to see if the process actually exists? CoreCLRProfiler/native/coreclr_headers/src/inc/dacprivate.h (2 lines): - line 683: // TODO: Add support to enumerate timers too. - line 796: // TODO: This needs to be put on the Dac side. CoreCLRProfiler/native/coreclr_headers/src/inc/regdisp.h (2 lines): - line 72: // TODO: Unify with pCurrentContext / pCallerContext used on 64-bit - line 513: _ASSERTE(!"@TODO Port - getRegAddr (Regdisp.h)"); CoreCLRProfiler/native/coreclr_headers/src/inc/nibblemapmacros.h (2 lines): - line 28: // TODO: bump up the windows CODE_ALIGN to 16 and iron out any nibble map bugs that exist. - line 29: // TODO: there is something wrong with USE_INDIRECT_CODEHEADER with CODE_ALIGN=16 CoreCLRProfiler/native/coreclr_headers/src/pal/src/thread/context.cpp (2 lines): - line 499: // TODO: Enable for all Unix systems - line 633: // TODO: Enable for all Unix systems CoreCLRProfiler/native/coreclr_headers/src/inc/metamodelpub.h (2 lines): - line 1645: // TODO: - line 1714: // TODO: CPUSamplesCollector/Linux/src/Program.cs (1 line): - line 66: Span dict = stackalloc int[7]; // TODO: FIXME Hard Coded number! CoreCLRProfiler/native/coreclr_headers/src/pal/src/libunwind/include/tdep-mips/jmpbuf.h (1 line): - line 27: /* FIXME for MIPS! */ CoreCLRProfiler/native/coreclr_headers/src/pal/src/libunwind/src/mips/Gstep.c (1 line): - line 127: //TODO:handle plt entry CoreCLRProfiler/native/coreclr_headers/src/pal/src/libunwind/src/aarch64/Gtrace.c (1 line): - line 212: FIXME: This probably should tell DWARF handling to never evaluate CoreCLRProfiler/native/coreclr_headers/src/pal/src/synchmgr/synchmanager.cpp (1 line): - line 3782: // TODO: Verify that the proper locks are held CoreCLRProfiler/native/coreclr_headers/src/pal/src/sharedmemory/sharedmemory.cpp (1 line): - line 1227: // TODO: Use a hash table CoreCLRProfiler/native/coreclr_headers/src/pal/src/include/pal/seh.hpp (1 line): - line 91: // TODO: Implement for Mach exceptions. Not in CoreCLR surface area. CoreCLRProfiler/native/coreclr_headers/src/pal/src/libunwind/src/aarch64/Gis_signal_frame.c (1 line): - line 55: /* FIXME: distinguish 32bit insn vs 64bit registers. */ WebViewer/Microsoft.BPerf.ModuleInformation.Abstractions/ImageInfo.cs (1 line): - line 17: this.ImageName = Path.GetFileNameWithoutExtension(filePath); // TODO: Remove System.IO.* CoreCLRProfiler/native/coreclr_headers/src/inc/corhdr.h (1 line): - line 249: // @TODO: This is required because we pull in the COM+ 2.0 PE header CoreCLRProfiler/native/coreclr_headers/src/pal/src/libunwind/include/tdep-tilegx/jmpbuf.h (1 line): - line 28: /* FIXME for Tilegx! */ CoreCLRProfiler/native/coreclr_headers/src/pal/src/synchobj/semaphore.cpp (1 line): - line 544: // TODO: Implementation of OpenSemaphoreA() doesn't exist, do we need it? More generally, do we need the A versions at all? CoreCLRProfiler/native/coreclr_headers/src/pal/src/libunwind/src/mips/Gget_save_loc.c (1 line): - line 27: /* FIXME for MIPS. */ CoreCLRProfiler/native/coreclr_headers/src/pal/src/locale/unicode.cpp (1 line): - line 322: // UNIXTODO: Implement this! CoreCLRProfiler/native/coreclr_headers/src/pal/src/libunwind/src/arm/Gos-linux.c (1 line): - line 148: /* TODO: with different toolchains, there are a lot more possibilities */ CoreCLRProfiler/native/coreclr_headers/src/pal/src/libunwind/src/ppc64/Gstep.c (1 line): - line 241: /* TODO: Is there a way of obtaining the value of the CoreCLRProfiler/native/coreclr_headers/src/pal/src/libunwind/src/x86_64/Gtrace.c (1 line): - line 210: FIXME: This probably should tell DWARF handling to never evaluate CoreCLRProfiler/native/coreclr_headers/src/pal/src/libunwind/src/mips/init.h (1 line): - line 48: /* FIXME: Initialisation for other registers. */ WebViewer/Microsoft.BPerf.ModuleInformation.Abstractions/ManagedModuleInfo.cs (1 line): - line 22: this.ModuleNamePrefix = Path.GetFileNameWithoutExtension(this.ModuleILPath) + "!"; // TODO: Remove System.IO.* CoreCLRProfiler/native/coreclr_headers/src/inc/clrconfig.h (1 line): - line 37: // * Look at the available config files (system, application, host and user). For details see TODO: CoreCLRProfiler/native/coreclr_headers/src/pal/src/synchobj/event.cpp (1 line): - line 487: // TODO: Implementation of OpenEventA() doesn't exist, do we need it? More generally, do we need the A versions at all? CoreCLRProfiler/native/coreclr_headers/src/inc/metadata.h (1 line): - line 138: // TODO: remove this when we remove m_cursor from the HENUMInternal structure CoreCLRProfiler/native/coreclr_headers/src/pal/src/arch/arm/context2.S (1 line): - line 166: // which should be ok -- TODO: Is this really ok? CoreCLRProfiler/native/coreclr_headers/src/pal/src/libunwind/include/tdep-aarch64/jmpbuf.h (1 line): - line 28: /* FIXME for AArch64 */ CoreCLRProfiler/native/coreclr_headers/src/inc/eventtrace.h (1 line): - line 352: // TODO: Need to be implemented for PROFILING_SUPPORTED. WebViewer/Microsoft.BPerf.StackViewer/Startup.cs (1 line): - line 56: // TODO: Make this crossplat CoreCLRProfiler/native/coreclr_headers/src/inc/corpriv.h (1 line): - line 393: //LONGPATH:TODO: Remove this once Desktop usage has been removed CoreCLRProfiler/native/coreclr_headers/src/pal/src/libunwind/src/mips/Gresume.c (1 line): - line 25: /* FIXME for MIPS. */ CoreCLRProfiler/native/coreclr_headers/src/inc/corcompile.h (1 line): - line 776: // TODO: hotCodeSize should be encoded in GC info CoreCLRProfiler/native/coreclr_headers/src/pal/src/libunwind/src/arm/is_fpreg.c (1 line): - line 27: /* FIXME: I'm not sure if libunwind's GP/FP register distinction is very useful CoreCLRProfiler/native/coreclr_headers/src/inc/cvinfo.h (1 line): - line 1818: // TS-TODO: replace a name with a NamedCodeItem once Weiping is done, to CoreCLRProfiler/native/coreclr_headers/src/pal/src/libunwind/src/arm/Gtrace.c (1 line): - line 213: FIXME: This probably should tell DWARF handling to never evaluate CoreCLRProfiler/native/coreclr_headers/src/inc/sigparser.h (1 line): - line 298: HRESULT GetCallingConv(ULONG* data) // @REVISIT_TODO: Calling convention is one byte, not four. CoreCLRProfiler/native/coreclr_headers/src/pal/src/libunwind/include/tdep-arm/jmpbuf.h (1 line): - line 27: /* FIXME for ARM! */ CoreCLRProfiler/native/coreclr_headers/src/inc/predeftlsslot.h (1 line): - line 16: // TODO: Introduce DAC API to make this hack unnecessary CoreCLRProfiler/native/coreclr_headers/src/pal/src/libunwind/src/sh/is_fpreg.c (1 line): - line 30: /* FIXME: Support FP. */ CoreCLRProfiler/native/coreclr_headers/src/pal/src/libunwind/src/mips/offsets.h (1 line): - line 5: /* FIXME: Currently these are only used in getcontext.S, which is only used CoreCLRProfiler/native/coreclr_headers/src/inc/safemath.h (1 line): - line 183: // TODO: Any way to prevent unintended instantiations? This is only designed to CoreCLRProfiler/native/coreclr_headers/src/inc/corinfo.h (1 line): - line 178: TODO: Talk about initializing strutures before use WebViewer/Microsoft.BPerf.SymbolicInformation.ProgramDatabase/TracePdbSymbolReaderProvider.cs (1 line): - line 34: // for now just bail on extended path stuff, TODO: need to fix this, need to audit file access APIs CoreCLRProfiler/native/coreclr_headers/src/inc/pedecoder.inl (1 line): - line 765: PREFIX_ASSUME (section!=NULL); //TODO: actually it is possible that it si null we need to rethink how we handle this cases and do better there