Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Core / Microsoft / Scripting / Compiler / SymbolDocumentGenerator.cs / 1305376 / SymbolDocumentGenerator.cs
/* **************************************************************************** * * Copyright (c) Microsoft Corporation. * * This source code is subject to terms and conditions of the Microsoft Public License. A * copy of the license can be found in the License.html file at the root of this distribution. If * you cannot locate the Microsoft Public License, please send an email to * dlr@microsoft.com. By using this source code in any fashion, you are agreeing to be bound * by the terms of the Microsoft Public License. * * You must not remove this notice, or any other, from this software. * * * ***************************************************************************/ #if MICROSOFT_SCRIPTING_CORE || SILVERLIGHT using ILGenerator = System.Linq.Expressions.Compiler.OffsetTrackingILGenerator; #endif using System.Collections.Generic; using System.Diagnostics; using System.Diagnostics.SymbolStore; using System.Linq.Expressions; using System.Linq.Expressions.Compiler; using System.Reflection; using System.Reflection.Emit; #if SILVERLIGHT using System.Core; #endif namespace System.Runtime.CompilerServices { ////// Generator of PDB debugging information for expression trees. /// internal sealed class SymbolDocumentGenerator : DebugInfoGenerator { private Dictionary_symbolWriters; private ISymbolDocumentWriter GetSymbolWriter(MethodBuilder method, SymbolDocumentInfo document) { ISymbolDocumentWriter result; if (_symbolWriters == null) { _symbolWriters = new Dictionary (); } if (!_symbolWriters.TryGetValue(document, out result)) { result = ((ModuleBuilder)method.Module).DefineDocument(document.FileName, document.Language, document.LanguageVendor, SymbolGuids.DocumentType_Text); _symbolWriters.Add(document, result); } return result; } internal override void MarkSequencePoint(LambdaExpression method, MethodBase methodBase, ILGenerator ilg, DebugInfoExpression sequencePoint) { MethodBuilder builder = methodBase as MethodBuilder; if (builder != null) { ilg.MarkSequencePoint(GetSymbolWriter(builder, sequencePoint.Document), sequencePoint.StartLine, sequencePoint.StartColumn, sequencePoint.EndLine, sequencePoint.EndColumn); } } public override void MarkSequencePoint(LambdaExpression method, int ilOffset, DebugInfoExpression sequencePoint) { throw Error.PdbGeneratorNeedsExpressionCompiler(); } internal override void SetLocalName(LocalBuilder localBuilder, string name) { localBuilder.SetLocalSymInfo(name); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. /* **************************************************************************** * * Copyright (c) Microsoft Corporation. * * This source code is subject to terms and conditions of the Microsoft Public License. A * copy of the license can be found in the License.html file at the root of this distribution. If * you cannot locate the Microsoft Public License, please send an email to * dlr@microsoft.com. By using this source code in any fashion, you are agreeing to be bound * by the terms of the Microsoft Public License. * * You must not remove this notice, or any other, from this software. * * * ***************************************************************************/ #if MICROSOFT_SCRIPTING_CORE || SILVERLIGHT using ILGenerator = System.Linq.Expressions.Compiler.OffsetTrackingILGenerator; #endif using System.Collections.Generic; using System.Diagnostics; using System.Diagnostics.SymbolStore; using System.Linq.Expressions; using System.Linq.Expressions.Compiler; using System.Reflection; using System.Reflection.Emit; #if SILVERLIGHT using System.Core; #endif namespace System.Runtime.CompilerServices { /// /// Generator of PDB debugging information for expression trees. /// internal sealed class SymbolDocumentGenerator : DebugInfoGenerator { private Dictionary_symbolWriters; private ISymbolDocumentWriter GetSymbolWriter(MethodBuilder method, SymbolDocumentInfo document) { ISymbolDocumentWriter result; if (_symbolWriters == null) { _symbolWriters = new Dictionary (); } if (!_symbolWriters.TryGetValue(document, out result)) { result = ((ModuleBuilder)method.Module).DefineDocument(document.FileName, document.Language, document.LanguageVendor, SymbolGuids.DocumentType_Text); _symbolWriters.Add(document, result); } return result; } internal override void MarkSequencePoint(LambdaExpression method, MethodBase methodBase, ILGenerator ilg, DebugInfoExpression sequencePoint) { MethodBuilder builder = methodBase as MethodBuilder; if (builder != null) { ilg.MarkSequencePoint(GetSymbolWriter(builder, sequencePoint.Document), sequencePoint.StartLine, sequencePoint.StartColumn, sequencePoint.EndLine, sequencePoint.EndColumn); } } public override void MarkSequencePoint(LambdaExpression method, int ilOffset, DebugInfoExpression sequencePoint) { throw Error.PdbGeneratorNeedsExpressionCompiler(); } internal override void SetLocalName(LocalBuilder localBuilder, string name) { localBuilder.SetLocalSymInfo(name); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- PersistenceProviderFactory.cs
- RepeatButton.cs
- QueryAsyncResult.cs
- PageRouteHandler.cs
- AlternateView.cs
- ActivityCodeDomSerializer.cs
- PagesSection.cs
- DecoderReplacementFallback.cs
- GlyphRun.cs
- CounterSampleCalculator.cs
- XmlAttributeAttribute.cs
- ConnectionPointGlyph.cs
- TCEAdapterGenerator.cs
- ConfigXmlReader.cs
- FixedSOMTableCell.cs
- ProcessModuleCollection.cs
- KeyEventArgs.cs
- NonVisualControlAttribute.cs
- CompositionTarget.cs
- DrawingGroupDrawingContext.cs
- DataSourceHelper.cs
- Geometry3D.cs
- DirectoryNotFoundException.cs
- StateDesigner.Layouts.cs
- XmlDocument.cs
- XhtmlBasicPanelAdapter.cs
- Operator.cs
- WindowsListViewScroll.cs
- EntitySetRetriever.cs
- xmlformatgeneratorstatics.cs
- CatalogZone.cs
- IisTraceListener.cs
- RSAOAEPKeyExchangeDeformatter.cs
- PathStreamGeometryContext.cs
- ZipPackagePart.cs
- PropertyChangingEventArgs.cs
- TogglePattern.cs
- ExternalFile.cs
- Effect.cs
- UserThread.cs
- ConstraintCollection.cs
- KoreanLunisolarCalendar.cs
- SimplePropertyEntry.cs
- BitmapMetadataEnumerator.cs
- CharStorage.cs
- IListConverters.cs
- Completion.cs
- ImageListUtils.cs
- Label.cs
- InfiniteTimeSpanConverter.cs
- SourceInterpreter.cs
- BCryptSafeHandles.cs
- LongValidatorAttribute.cs
- WSHttpBindingBaseElement.cs
- ExtractedStateEntry.cs
- TextViewSelectionProcessor.cs
- FileDialogCustomPlace.cs
- PointAnimation.cs
- Vector3DKeyFrameCollection.cs
- CornerRadiusConverter.cs
- Action.cs
- ConnectorEditor.cs
- RootBrowserWindowAutomationPeer.cs
- XmlSchemaAttribute.cs
- EventListener.cs
- ProfileInfo.cs
- MobileCapabilities.cs
- WSSecureConversationDec2005.cs
- StorageTypeMapping.cs
- RequestResponse.cs
- ModelServiceImpl.cs
- MasterPageBuildProvider.cs
- BoundColumn.cs
- BidOverLoads.cs
- PowerModeChangedEventArgs.cs
- InteropBitmapSource.cs
- CustomPopupPlacement.cs
- EdmToObjectNamespaceMap.cs
- ServerValidateEventArgs.cs
- SqlProviderManifest.cs
- Int16Converter.cs
- StandardBindingElementCollection.cs
- KeySplineConverter.cs
- LinkArea.cs
- MultiByteCodec.cs
- Attributes.cs
- MeshGeometry3D.cs
- WindowsTokenRoleProvider.cs
- ListChangedEventArgs.cs
- PageOutputQuality.cs
- ExtentCqlBlock.cs
- EncryptedHeader.cs
- CalendarDesigner.cs
- BrowserCapabilitiesCompiler.cs
- XXXInfos.cs
- TraceHandlerErrorFormatter.cs
- XmlElementElement.cs
- DataGridViewCellErrorTextNeededEventArgs.cs
- ErrorEventArgs.cs
- DefaultValueConverter.cs