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
- AutomationIdentifierGuids.cs
- InstanceDataCollection.cs
- SizeFConverter.cs
- EncryptedPackage.cs
- XmlNamespaceDeclarationsAttribute.cs
- CreateUserErrorEventArgs.cs
- TreeViewImageIndexConverter.cs
- Overlapped.cs
- HashSet.cs
- UserPreferenceChangingEventArgs.cs
- DispatchProxy.cs
- OdbcPermission.cs
- TypeLibConverter.cs
- ResetableIterator.cs
- DoubleAnimationUsingKeyFrames.cs
- TypeToStringValueConverter.cs
- CannotUnloadAppDomainException.cs
- ThumbButtonInfo.cs
- DebugHandleTracker.cs
- TextDecoration.cs
- EnumerableWrapperWeakToStrong.cs
- XmlSchemaInfo.cs
- ThreadPool.cs
- MasterPageCodeDomTreeGenerator.cs
- PackWebRequest.cs
- BrowserCapabilitiesFactoryBase.cs
- PerfCounters.cs
- XmlTextReaderImpl.cs
- SqlCacheDependencySection.cs
- StreamInfo.cs
- HostingEnvironment.cs
- _Semaphore.cs
- ControlCachePolicy.cs
- StreamSecurityUpgradeAcceptor.cs
- ProfileService.cs
- SimpleFieldTemplateFactory.cs
- UnescapedXmlDiagnosticData.cs
- ObjectItemCollectionAssemblyCacheEntry.cs
- newinstructionaction.cs
- CompensationTokenData.cs
- SymmetricAlgorithm.cs
- ServiceTimeoutsElement.cs
- CodeDirectionExpression.cs
- WindowsPen.cs
- DetailsViewUpdatedEventArgs.cs
- OraclePermission.cs
- DataGridViewTextBoxColumn.cs
- ObjectConverter.cs
- HtmlProps.cs
- DataSvcMapFileSerializer.cs
- TrackingProfileSerializer.cs
- AttachedAnnotation.cs
- ContainerActivationHelper.cs
- HebrewCalendar.cs
- CodeTryCatchFinallyStatement.cs
- XmlNodeReader.cs
- TrackBarRenderer.cs
- XmlResolver.cs
- GridViewPageEventArgs.cs
- ValidatedControlConverter.cs
- ParentUndoUnit.cs
- EntityContainer.cs
- ComplexPropertyEntry.cs
- WeakReferenceList.cs
- EntityClassGenerator.cs
- DynamicVirtualDiscoSearcher.cs
- JulianCalendar.cs
- XmlUTF8TextWriter.cs
- MetadataHelper.cs
- WsatServiceAddress.cs
- oledbconnectionstring.cs
- Scheduler.cs
- UserValidatedEventArgs.cs
- SystemResourceHost.cs
- ConfigPathUtility.cs
- BinaryFormatterWriter.cs
- SizeKeyFrameCollection.cs
- TemporaryBitmapFile.cs
- InternalConfigHost.cs
- SpeakCompletedEventArgs.cs
- ThaiBuddhistCalendar.cs
- HttpWriter.cs
- ObjectDataSourceView.cs
- ListViewHitTestInfo.cs
- FontStretchConverter.cs
- StorageMappingItemCollection.cs
- PrintDialog.cs
- dsa.cs
- CompressedStack.cs
- FlowPanelDesigner.cs
- Model3D.cs
- MetadataCacheItem.cs
- ResponseBodyWriter.cs
- AttachedAnnotationChangedEventArgs.cs
- SystemIPInterfaceProperties.cs
- ToolStripSettings.cs
- UserNamePasswordValidationMode.cs
- SiteMapNodeCollection.cs
- ResolveNameEventArgs.cs
- CreatingCookieEventArgs.cs