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
- MetadataItemEmitter.cs
- OrderedDictionary.cs
- Solver.cs
- DataGridViewCell.cs
- MenuItem.cs
- DbSetClause.cs
- IdentityReference.cs
- ClientSettingsSection.cs
- EntityCommandExecutionException.cs
- SecureUICommand.cs
- TextBoxAutoCompleteSourceConverter.cs
- EntityDataSourceReferenceGroup.cs
- SqlDataReader.cs
- EasingKeyFrames.cs
- Vector.cs
- Screen.cs
- RequestResizeEvent.cs
- SafeNativeMethodsOther.cs
- TrustManagerMoreInformation.cs
- InputGestureCollection.cs
- SecurityChannelListener.cs
- LayoutUtils.cs
- UserControlAutomationPeer.cs
- URLMembershipCondition.cs
- PackWebRequestFactory.cs
- WebPartDisplayModeCollection.cs
- CultureInfoConverter.cs
- Lease.cs
- ConstructorBuilder.cs
- DockPanel.cs
- Walker.cs
- CustomTrackingRecord.cs
- SolidColorBrush.cs
- AnnotationStore.cs
- StringReader.cs
- ConstraintManager.cs
- _SafeNetHandles.cs
- Point3DCollectionValueSerializer.cs
- CellConstant.cs
- PersonalizationStateInfo.cs
- SerTrace.cs
- HyperlinkAutomationPeer.cs
- ErrorInfoXmlDocument.cs
- ResourcesChangeInfo.cs
- TreeViewItem.cs
- TrustSection.cs
- LoginView.cs
- Scripts.cs
- SafeNativeMemoryHandle.cs
- CheckBoxBaseAdapter.cs
- MenuCommand.cs
- ActivityScheduledRecord.cs
- ServiceReference.cs
- DrawingGroup.cs
- ArraySubsetEnumerator.cs
- WrappedIUnknown.cs
- SafeIUnknown.cs
- WebContext.cs
- DataTableTypeConverter.cs
- CharacterHit.cs
- QueryResult.cs
- StylusCaptureWithinProperty.cs
- LicenseManager.cs
- TabPage.cs
- ToolStripItemGlyph.cs
- StrongNameKeyPair.cs
- FacetChecker.cs
- ByteStack.cs
- AuthenticatingEventArgs.cs
- HealthMonitoringSectionHelper.cs
- ExpressionConverter.cs
- AssemblyNameProxy.cs
- ToolStripItemEventArgs.cs
- FileDataSourceCache.cs
- HttpListenerContext.cs
- ReadOnlyDictionary.cs
- MenuStrip.cs
- RolePrincipal.cs
- SuppressMessageAttribute.cs
- XmlQueryRuntime.cs
- StandardTransformFactory.cs
- WebRequest.cs
- BooleanExpr.cs
- DataGrid.cs
- TdsValueSetter.cs
- QueryProcessor.cs
- IndexerNameAttribute.cs
- CryptographicAttribute.cs
- DBProviderConfigurationHandler.cs
- DocumentPage.cs
- XmlSchemaFacet.cs
- JsonFormatGeneratorStatics.cs
- DbConnectionStringCommon.cs
- CodeLabeledStatement.cs
- DrawListViewColumnHeaderEventArgs.cs
- ResourceDefaultValueAttribute.cs
- _LazyAsyncResult.cs
- GlyphRun.cs
- OdbcParameter.cs
- StylusSystemGestureEventArgs.cs