Beispiel #1
0
        /// <summary>
        /// Dumps one R2RMethod.
        /// </summary>
        internal override void DumpMethod(ReadyToRunMethod method)
        {
            WriteSubDivider();
            method.WriteTo(_writer, _options);

            if (_options.GC && method.GcInfo != null)
            {
                BaseGcInfo gcInfo = method.GcInfo;
                _writer.WriteLine("GC info:");
                _writer.Write(gcInfo);

                if (_options.Raw)
                {
                    DumpBytes(method.GcInfoRva, (uint)gcInfo.Size);
                }
            }
            SkipLine();

            if (_options.Pgo && method.PgoInfo != null)
            {
                _writer.WriteLine("PGO info:");
                _writer.Write(method.PgoInfo);

                if (_options.Raw)
                {
                    DumpBytes(method.PgoInfo.Offset, (uint)method.PgoInfo.Size, convertToOffset: false);
                }
                SkipLine();
            }

            foreach (RuntimeFunction runtimeFunction in method.RuntimeFunctions)
            {
                DumpRuntimeFunction(runtimeFunction);
            }
        }
Beispiel #2
0
        /// <summary>
        /// Dumps one R2RMethod.
        /// </summary>
        internal override void DumpMethod(ReadyToRunMethod method)
        {
            WriteSubDivider();
            method.WriteTo(_writer, _options);

            if (_options.GC && method.GcInfo != null)
            {
                _writer.WriteLine("GC info:");
                _writer.Write(method.GcInfo);

                if (_options.Raw)
                {
                    DumpBytes(method.GcInfo.Offset, (uint)method.GcInfo.Size, "", false);
                }
            }
            SkipLine();

            foreach (RuntimeFunction runtimeFunction in method.RuntimeFunctions)
            {
                DumpRuntimeFunction(runtimeFunction);
            }
        }