/// <summary> /// Gets all code chunks /// </summary> /// <returns></returns> public unsafe CodeChunkInfo[] GetCodeChunks() { var c2 = obj as ICorDebugCode2; if (c2 == null) { return(Array.Empty <CodeChunkInfo>()); } uint cnumChunks; int hr = c2.GetCodeChunks(0, out cnumChunks, IntPtr.Zero); if (hr < 0) { return(Array.Empty <CodeChunkInfo>()); } var infos = new CodeChunkInfo[cnumChunks]; if (cnumChunks != 0) { fixed(void *p = &infos[0]) hr = c2.GetCodeChunks(cnumChunks, out cnumChunks, new IntPtr(p)); if (hr < 0) { return(Array.Empty <CodeChunkInfo>()); } } return(infos); }
public CodeChunkInfo[] GetCodeChunks() => debugger.Dispatcher.UI(() => { var chunks = this.CorCode.GetCodeChunks(); var res = new CodeChunkInfo[chunks.Length]; for (int i = 0; i < chunks.Length; i++) { res[i] = new CodeChunkInfo(chunks[i].StartAddr, chunks[i].Length); } return(res); });