1 2008-06-18 Martin Baulig <martin@ximian.com>
4 (OffsetTable): Bump version to 50.0.
6 2008-06-18 Martin Baulig <martin@ximian.com>
9 (OffsetTable.MinorVersion): Bump to 7.
10 (OffsetTable.Flags): New public enum.
11 (OffsetTable.FileFlags): New public property.
12 (OffsetTable.IsAspxSource): Removed.
14 2008-06-17 Martin Baulig <martin@ximian.com>
17 (MethodEntry.Flags): Removed `IsCompilerGenerated'.
19 2008-06-16 Martin Baulig <martin@ximian.com>
22 (SourceMethodBuilder.SetCompilerGenerated): Removed; we now use
23 the `DebuggerHiddenAttribute'.
25 2008-06-11 Martin Baulig <martin@ximian.com>
27 * SymbolWriterImpl.cs: Put this back and make it work with the
28 current symbol writer.
30 2008-06-11 Martin Baulig <martin@ximian.com>
33 (MonoSymbolWriter.OpenMethod): Maintain a method stack, so we can
34 now recursively call OpenMethod().
36 2008-06-11 Martin Baulig <martin@ximian.com>
39 (SourceFileEntry.WriteData): Silently ignore non-existing files.
41 2008-06-11 Martin Baulig <martin@ximian.com>
44 (MonoSymbolWriter.SetRealMethodName): Removed, call it on the
45 `SourceMethodBuilder'.
46 (MonoSymbolWriter.SetCompilerGenerated): Likewise.
48 2008-06-11 Martin Baulig <martin@ximian.com>
51 (ISourceMethod): Renamed to `IMethodDef'.
52 (SourceMethodBuilder): New public class.
53 (MonoSymbolWriter.OpenMethod): Added `int ns_id' argument and
54 return a `SourceMethodBuilder'.
56 2008-06-10 Martin Baulig <martin@ximian.com>
59 (OffsetTable.MinorVersion): Bump to 6. There were no changes to
60 the file format, but we were generating incorrect source file
61 indices in the line number table due to a bug, which made
62 backtraces report an incorrect source file.
64 2008-06-10 Martin Baulig <martin@ximian.com>
67 (MonoSymbolWriter.MarkSequencePoint): Added overloaded version
68 taking a `SourceFileEntry' instead of a file index.
70 2008-06-10 Martin Baulig <martin@ximian.com>
73 (MonoSymbolWriter.CloseMethod): Quick-fix; still a lot of broken
76 2008-06-05 Martin Baulig <martin@ximian.com>
79 (MethodEntry.Flags): New public enum.
80 (MethodEntry.MethodFlags): New public fields.
81 (MethodEntry.LocalNamesAmbiguous): Removed; this is now part of
85 (MonoSymbolWriter.SetCompilerGenerated): New public method.
87 2008-06-02 Martin Baulig <martin@ximian.com>
90 (ICompileUnit): New public interface.
91 (MonoSymbolWriter.Sources): Removed.
92 (MonoSymbolWriter.OpenMethod): Take an `ICompileUnit', removed
93 `startRow', `startColumn', `endRow' and `endColumn'.
94 (MonoSymbolWriter.DefineCompilationUnit): New public method.
95 (MonoSymbolWriter.DefineNamespace): Operate on `ICompileUnit'.
98 (MonoSymbolFile.CompileUnit): New public properties.
101 (OffsetTable): Replace `Version' by `MajorVersion' and
102 `MinorVersion'. Add `CompileUnitCount', `CompileUnitTableOffset'
103 and `CompileUnitTableSize'.
104 (CompileUnitEntry): New public method.
105 (LineNumberTable): Removed `StartFile' and `StartRow'.
106 (MethodEntry): Removed `StartRow' and `EndRow'.
108 2008-06-02 Martin Baulig <martin@ximian.com>
110 * SymbolWriterImpl.cs: Removed.
112 2008-05-28 Martin Baulig <martin@ximian.com>
115 (MethodIndexEntry): Removed.
116 (MethodEntry): Moved everything into the data section, so it can
117 be read dynamically on-the-fly. The `MethodEntry' now has a fixed
118 size of 12 bytes in the symbol file containing only token, data
119 offset and line number table offset.
121 2008-05-28 Martin Baulig <martin@ximian.com>
124 (MethodEntry.LocalTypeIndices): Removed.
125 (MethodEntry.GetLineNumberTable): New public method; replaces the
126 `LineNumbers' and `NumLineNumbers' fields.
127 (MethodEntry.GetLocals): New public method; replaces the `Locals'
128 and `NumLocals' fields.
129 (MethodEntry.GetCodeBlocks): New public method; replaces the
130 `CodeBlocks' and `NumCodeBlocks' fields.
131 (MethodEntry.GetScopeVariables): New public method; replaces the
132 `ScopeVariables' and `NumScopeVariables' fields.
133 (MethodEntry.GetRealName): New public method; replaces `RealName'.
134 (MethodEntry): Removed the old fields.
136 2008-05-28 Martin Baulig <martin@ximian.com>
139 (MethodSourceEntry): Removed.
140 (SourceFileEntry.Methods): Removed.
142 2008-05-26 Martin Baulig <martin@ximian.com>
144 * MonoSymbolWriter.cs
145 (MonoSymbolWriter.DefineDocument): Added overloaded version taking
146 additional `byte[] guid' and `byte[] hash' arguments.
149 (OffsetTable.IsAspxSource): New public field.
150 (SourceFileEntry): Completely redesigned this; only write index
151 and data offset, everything else goes into the data section.
152 (SourceFileEntry.AutoGenerated): New public property.
153 (SourceFileEntry.CheckChecksum): New public method.
155 2008-05-16 Martin Baulig <martin@ximian.com>
158 (LineNumberEntry.IsHidden): New public field.
159 (LineNumberTable): Add support for hidden line numbers.
161 * MonoSymbolWriter.cs
162 (MonoSymbolWriter.MarkSequencePoint): Add overloaded version
163 taking an additional `bool is_hidden' argument.
165 2008-05-05 Martin Baulig <martin@ximian.com>
168 (MonoSymbolFile.OffsetTable): New public property.
169 (MonoSymbolFile.FileName): New public readonly field.
172 (OffsetTable): Make this a class and not a struct.
173 (OffsetTable): Add `LineNumberTable_LineBase',
174 `LineNumberTable_LineRange' and `LineNumberTable_OpcodeBase'.
175 (LineNumberEntry): Removed the reading/writing functions.
176 (LineNumberTable): Get `LineBase', `LineRange' and `OpcodeBase'
177 from the `OffsetTable' rather than hardcoding it here.
178 (MethodEntry): Make `NumLineNumbers' and `LineNumbers' properties;
179 massive cleanup, use leb128 everywhere and removed all the
182 2008-04-29 Martin Baulig <martin@ximian.com>
185 (OffsetTable.Version): Bump to 42.
186 (LineNumberTable): New public class. Provides a new line number
187 table format which is based on Dwarf 2.
188 (MethodEntry): Replaced BuildLineNumberTable() by
189 CheckLineNumberTable(); we're now more strict than we were before
190 and disallow not monotonic increasing entries, we don't check for
191 duplicates anymore since the new LineNumberTable takes care of that.
192 (LineEntry): Added public `File' field which is a file index.
194 * MonoSymbolWriter.cs
195 (MonoSymbolWriter.MarkSequencePoint): Added `int file' argument.
197 2008-04-29 Martin Baulig <martin@ximian.com>
199 **** Kahalo changes start here ****
201 2008-05-05 Martin Baulig <martin@ximian.com>
203 Drop support for old pre-terrania symbol files.
206 (MonoSymbolFile.CompatibilityMode): Removed.
209 (LexicalBlockEntry): Removed this obsolete class.
211 2008-04-02 Martin Baulig <martin@ximian.com>
213 * *.cs: Remove the `#if !DISABLE_TERRANIA_CHANGES' conditionals.
215 2008-03-14 Martin Baulig <martin@ximian.com>
217 Merged the debugger's `terrania' branch into trunk.
219 2008-03-13 Martin Baulig <martin@ximian.com>
221 * *.cs: Add `DISABLE_TERRANIA_CHANGES' conditionals everywhere
222 around the new code; they'll be removed when I'm back from my
225 2008-03-13 Martin Baulig <martin@ximian.com>
228 (LexicalBlockEntry): Mark this as obsolete.
230 2008-03-11 Martin Baulig <martin@ximian.com>
232 * MonoSymbolTable.cs (MethodEntry): Removed `LocalTypeIndices'.
234 2008-03-10 Martin Baulig <martin@ximian.com>
237 (LocalVariableEntry): Removed the `Signature' field; we don't
238 write this into the symbol file anymore.
240 * MonoSymbolWriter.cs
241 (MonoSymbolWriter.DefineLocalVariable): The `byte[] signature'
242 argument is now obsolete.
244 2008-02-19 Martin Baulig <martin@ximian.com>
247 (MonoSymbolFile.Version): New public readonly field.
248 (MonoSymbolFile.CompatibilityMode): Likewise; this is enabled if
249 we're reading an old `39' file.
252 (OffsetTable.CompatibilityVersion): New public const; we keep
253 backwards compatibility with this version.
254 (OffsetTable.Write): Add `version' argument; allow writing the old
256 (MethodEntry): Check `file.CompatiblityMode'.
258 2008-02-19 Martin Baulig <martin@ximian.com>
260 * MonoSymbolWriter.cs
261 (MonoSymbolWriter.SetRealMethodName): New public method.
264 (MethodEntry.RealName): New public field; this is only used for
265 anonymous methods and iterators.
267 2008-02-15 Martin Baulig <martin@ximian.com>
270 (CodeBlockEntry): New public class.
271 (MethodEntry): Replace the old lexical blocks with a new concept
272 of `code blocks'. Keep backwards compatibility.
274 * MonoSymbolWriter.cs
275 (MonoSymbolWriter): Add OpenCompilerGeneratedBlock(),
276 CloseCompilerGeneratedBlock(), StartIteratorBody(),
277 EndIteratorBody(), StartIteratorDispatcher(),
278 EndIteratorDispatcher().
280 2008-02-02 Martin Baulig <martin@ximian.com>
283 (OffsetTable.Version): Bump to 40.
284 (OffsetTable): Add `AnonymousScopeCount',
285 `AnonymousScopeTableOffset' and `AnonymousScopeTableSize'.
286 (CapturedVariable): New public struct.
287 (CapturedScope): New public struct.
288 (ScopeVariable): New public struct.
289 (AnonymousScopeEntry): New public class.
290 (SourceFileEntry.DefineMethod): Added overloaded version taking an
291 additional `ScopeVariable[]' argument.
294 (MonoSymbolFile.AnonymousScopeCount): New public property.
295 (MonoSymbolFile.GetAnonymousScope): New public method.
297 * MonoSymbolWriter.cs
298 (MonoSymbolWriter.DefineAnonymousScope): New public method.
299 (MonoSymbolWriter.DefineCapturedLocal): New public method.
300 (MonoSymbolWriter.DefineCapturedParameter): New public method.
301 (MonoSymbolWriter.DefineCapturedThis): New public method.
302 (MonoSymbolWriter.DefineCapturedScope): New public method.
303 (MonoSymbolWriter.DefineScopeVariable): New public method.
305 2008-02-02 Martin Baulig <martin@ximian.com>
307 ***** Terrania changes start at this point *****
309 2007-08-27 Jb Evain <jbevain@novell.com>
311 * MonoSymbolFile.cs, SymbolWriterImpl.cs: add some Cecil specific
312 code protected by a CECIL defined.
314 Mon Jan 29 16:51:33 CET 2007 Paolo Molaro <lupus@ximian.com>
316 * MonoSymbolWriter.cs: unlink the file before writing it, since it may
317 be mmapped by the runtime.
319 2007-01-29 Martin Baulig <martin@ximian.com>
322 (MonoSymbolFile.Assembly): Removed this property.
323 (MonoSymbolFile.Guid): New public property.
325 2006-09-24 Joshua Tauberer <jit@occams.info>
327 * MonoSymbolFile.cs: Allow MonoSymbolFile to be created
328 without passing a System.Reflection.Assembly, so we can
329 use this with Cecil. Only the GUID check is avoided.
331 2005-09-14 Martin Baulig <martin@ximian.com>
333 * MonoSymbolTable.cs (OffsetTable): Bump version to 39.
334 (LocalVariableEntry.Index): New field.
336 * MonoSymbolWriter.cs
337 (MonoSymbolWriter.DefineLocalVariable): Added `int index' argument.
340 (MonoDebuggerSupport.GetLocalIndex): New method.
342 2005-09-05 Martin Baulig <martin@ximian.com>
344 * MonoSymbolFile.cs (MonoDebuggerSupport): Make this internal and
345 move everything we don't need here into the debugger.
347 2005-06-20 Chris Toshok <toshok@ximian.com>
349 * MonoSymbolFile.cs (MonoSymbolFile.Dispose): make public.
351 2005-05-25 Lluis Sanchez Gual <lluis@novell.com>
353 * SymbolWriterImpl.cs: An implementation of ISymbolWriter. It is just a
354 wrapper for the MonoSymbolWriter class that mcs is using.
356 2005-04-04 Marek Safar <marek.safar@seznam.cz>
358 * MonoSymbolFile.cs: Removed unused fields.
360 2005-02-10 Martin Baulig <martin@ximian.com>
363 (MonoDebuggerSupport.MakeArrayType): New public method.
364 (MonoDebuggerSupport.ResolveType): New public method.
365 (MonoDebuggerSupport.GetTypeToken): New public method.
367 2005-02-10 Martin Baulig <martin@ximian.com>
369 * MonoSymbolFile.cs (MonoDebuggerSupport.GetMethodIndex): New
372 2004-11-23 Ben Maurer <bmaurer@ximian.com>
374 * MonoSymbolFile.cs (CreateSymbolFile): Take a filestream to
375 write to. Do not return a byte array.
377 (MyMemoryStream): Unused now.
379 * MonoSymbolWriter.cs: Take advantage of the api change above.
381 Overall, this prevents us from having to allocate the debug file
382 in ram. For corlib, the debug file is about 1.5 mb. So it takes up
383 over 3 mb (you must write it in chunks then get the big array)
385 With the file stream, it takes up 4 kb or so for the buffer.
387 2004-10-20 Martin Baulig <martin@ximian.com>
389 * MonoSymbolFile.cs (MonoSymbolFile.Write): Sort the method table
390 before actually writing it to disk and update MethodEntry.Index.
392 * MonoSymbolTable.cs (MethodEntry.Index): Make this a writable
393 property; set it after creating all the methods and sorting the
396 2004-09-21 Martin Baulig <martin@ximian.com>
398 * MonoSymbolFile.cs (MonoDebuggerSupport.CheckRuntimeVersion): New
401 2004-08-27 Martin Baulig <martin@ximian.com>
403 * MonoSymbolFile.cs (MonoSymbolFile..ctor): Read the GUID from the
404 symbol file before reading the OffsetTable.
406 2004-08-27 Chris Toshok <toshok@ximian.com>
408 * MonoSymbolFile.cs (MonoSymbolFile.ReadSymbolFile): pass name to
409 MonoSymbolFile.ctor, not filename, so we load the .mdb file
411 (MonoSymbolFile.ctor): pass FileAccess.Read to the FileStream
414 2004-08-27 Martin Baulig <martin@ximian.com>
416 * MonoSymbolFile.cs (MonoDebuggerSupport.GetGuid): The function is
417 called Module.Mono_GetGuid(), not Module.MonoDebugger_GetGuid().
419 2004-07-30 Martin Baulig <martin@ximian.com>
421 The library is now called Mono.CompilerServices.SymbolWriter.dll
422 and is in the Mono.CompilerServices.SymbolWriter namespace.
424 * MonoSymbolFile.cs (MonoDebuggerSupport.GetGuid): New public
426 (MonoSymbolFile.WriteString): Use the BinaryWriter's method.
427 (MonoSymbolFile.ReadString): Use the BinaryReader's method.
428 (MonoSymbolFile.Write): Write the module's Guid into the symbol
431 * MonoSymbolTable.cs, MonoSymbolWriter.cs: Reworked the API.
433 2004-07-27 Martin Baulig <martin@ximian.com>
435 * MonoSymbolFile.cs (MonoSymbolFile.Write): Sort the methods
436 according to their token values.
437 (MonoSymbolFile.ReadSymbolFile): Support reading the debugging
438 information from an external ".mdb" file.
441 (SourceFileEntry): Make the .ctor protected, not internal.
442 (SourceFileEntry.DefineMethod): This is no longer specific to
443 System.Reflection(.Emit).
444 (MethodEntry): We don't need the class and parameter types, the
445 JIT is already getting this information automatically.
446 (MethodEntry.ClassTypeIndex): Make this obsolete.
447 (MethodEntry.ParamTypeIndicies): Likewise.
449 2004-07-02 Raja R Harinath <rharinath@novell.com>
451 * Makefile (LIBRARY_USE_INTERMEDIATE_FILE): Define.
452 (LIBRARY_COMPILE): Simplify.
454 2004-06-24 Raja R Harinath <rharinath@novell.com>
456 * Makefile (LIBRARY_COMPILE): Only define for W32.
458 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
460 * Makefile: build using mcs on windows.
462 2004-06-19 Martin Baulig <martin@ximian.com>
465 (SourceFileTable.Namespaces): New public property.
467 2004-06-02 Martin Baulig <martin@ximian.com>
469 Set version number to 37.
471 2004-05-23 Ben Maurer <bmaurer@users.sourceforge.net>
473 * MonoSymbolTable.cs (BuildLineNumberTable): Avoid arraylist.
475 2004-01-16 Martin Baulig <martin@ximian.com>
477 Set version number to 36.
479 * MonoSymbolFile.cs (MonoSymbolFile): Removed 'FindMethod' and
482 * MonoSymbolTable.cs (MethodEntry): Don't write the method's full
483 name into the symbol file.
485 2004-01-16 Martin Baulig <martin@ximian.com>
487 * MonoSymbolFile.cs (MonoDebuggerSupport): As suggested by Ben
488 Maurer, create a delegate type for each of the methods and then
491 2004-01-15 Martin Baulig <martin@ximian.com>
493 * MonoSymbolFile.cs (MonoDebuggerSupport): New public class
494 containing static wrappers for calling the `MonoDebugger_*'
495 function in S.R.Assembly.
497 2004-01-13 Martin Baulig <martin@ximian.com>
499 * MonoSymbolTable.cs: Added more #region's and a comment at the
502 * MonoSymbolWriter.cs (SourceMethod.BuildLineNumberTable): Removed
503 it here since it's in MethodEntry again.
505 2004-01-13 Martin Baulig <martin@ximian.com>
507 * ChangeLog, MonoSymbolTable.cs: Reviewed Ben's patches. For
508 those which are not ok, I'll add detailed comments to the source
511 2003-12-28 Ben Maurer <bmaurer@users.sourceforge.net>
513 [Revision 1.41, not approved. Martin]
514 * MonoSymbolTable.cs (MethodEntry): kill more
517 2003-12-28 Ben Maurer <bmaurer@users.sourceforge.net>
519 [Revision 1.40, not approved. Martin]
520 * MonoSymbolTable.cs (MethodEntry): Remove the
521 SourceFileIndex field, we already have the info.
523 2003-12-28 Ben Maurer <bmaurer@users.sourceforge.net>
525 [Revision 1.39, approved. Martin]
526 * MonoSymbolTable.cs: Don't make the MethodIndexEntry
527 part of the method entry class, because it just
528 takes up extra space.
530 2003-12-28 Ben Maurer <bmaurer@users.sourceforge.net>
532 [Revisions 1.37 and 1.38; not approved. Martin]
533 * MonoSymbolTable.cs (MethodEntry.BuildLineNumberTable): Removed.
535 * MonoSymbolTable.cs, MonoSymbolWriter.cs: Use
536 fewer arrays, dont use arraylists with structs.
538 2003-12-27 Ben Maurer <bmaurer@users.sourceforge.net>
540 * MonoSymbolFile.cs: Much, much better string writing.
542 2003-12-20 Ben Maurer <bmaurer@users.sourceforge.net>
544 [Revision 1.36, approved. Martin]
545 * MonoSymbolTable.cs: Fewer StringBuilder allocs.
547 2003-12-08 Zoltan Varga <vargaz@freemail.hu>
549 * MonoSymbolWriter.cs: Create ArrayLists only when needed.
551 2003-12-07 Ben Maurer <bmaurer@users.sourceforge.net>
553 [Revision 1.35, approved. Martin]
554 * MonoSymbolTable.cs: It is faster to do a linear search
555 than it is to make a hashtable. Even though the linear
556 search is O(n^2) while the hashtable is O(n), the allocation
557 cost for a hashtable is *very* high, especially when only
558 a few members will be added.
560 2003-09-06 Martin Baulig <martin@ximian.com>
562 * MonoSymbolFile.cs: Removed debugging output.
564 2003-08-05 Martin Baulig <martin@ximian.com>
566 * MonoSymbolTable.cs (MethodEntry.Index): New public field.
568 2003-06-27 Zoltan Varga <vargaz@freemail.hu>
570 * MonoSymbolWriter.cs: Enable calling of DefineDocument multiple
571 times with the same URL.
573 2003-06-10 Zoltan Varga <vargaz@freemail.hu>
575 * MonoSymbolFile.cs: Fix off-by-one error.
577 2003-03-22 Martin Baulig <martin@ximian.com>
579 * MonoSymbolTable.cs (MethodEntry.LocalNamesAmbiguous): New public
580 field. Specifies whether two local variables have the same name.
582 2003-03-13 Martin Baulig <martin@ximian.com>
584 Added basic support for lexical scopes. This is just to tell a
585 debugger that a local variable is only available in a specific
586 lexical scope and that another variable of the same name may exist
587 in another lexical scope. See debugger/test/TestLexicalScope.cs
590 * MonoSymbolTable.cs (LexicalScopeEntry): New class.
591 (LocalVariableEntry): Added `BlockIndex' field which specifies the
592 lexical scope of this variable.
594 * MonoSymbolWriter.cs (SourceBlock): Removed, we're now using
595 LexicalScopeEntry instead.
597 2003-02-22 Martin Baulig <martin@ximian.com>
599 * MonoSymbolTable.cs: Incremented version number.
601 2003-02-22 Martin Baulig <martin@ximian.com>
603 * MonoSymbolFile.cs (MonoSymbolFile.FindMethod): Fixed a bug.
604 (MonoSymbolFile.MethodLookup): New method.
606 2003-02-18 Martin Baulig <martin@ximian.com>
608 * MonoSymbolFile.cs (MonoSymbolFile.GetMethod): Added overloaded
609 version which takes a MethodBase.
611 2003-02-18 Martin Baulig <martin@ximian.com>
613 * MonoSymbolTable.cs (MethodIndexEntry): New public struct.
615 * MonoSymbolFile.cs (MonoSymbolFile.GetMethodByToken): New method.
617 2003-02-18 Martin Baulig <martin@ximian.com>
619 * MonoSymbolFile.cs (MonoSymbolFile.Assembly): New public property.
621 * MonoSymbolTable.cs (MethodEntry.MethodBase): New public property.
622 (MethodEntry.LocalTypes): New public variable.
624 2003-02-18 Martin Baulig <martin@ximian.com>
626 * MonoSymbolFile.cs (MethodEntry.ThisTypeIndex): Renamed to
627 ClassTypeIndex; provide this for all methods so we can get the
628 class of static methods.
630 2003-02-10 Nick Drochak <ndrochak@gol.com>
632 * Mono.CSharp.Debugger.build: passing the /r using an 'arg' node works.
633 The <include> node wasn't getting to the compiler. This fixes build
636 * MonoSymbolFile.cs: Qualify which Min method. Fixes build breakage
639 2003-02-09 Martin Baulig <martin@ximian.com>
641 * MonoSymbolWriter.cs (MonoSymbolWriter.ctor): We don't need the
642 `mbuilder_array' anymore.
644 2003-02-09 Martin Baulig <martin@ximian.com>
646 * MonoSymbolWriter.cs (SourceFile): Derive from SourceFileEntry.
647 (SourceBlock): We don't need source lines here.
648 (SourceMethod): We're always constructed with source info.
650 * MonoSymbolTable.cs: Added support for namespaces.
651 (NamespaceEntry): New struct.
652 (SourceFileEntry.DefineNamespace): New method.
653 (MethodEntry.BuildLineNumberTable): The table is already sorted,
654 so we don't need to do this here.
656 2003-02-09 Martin Baulig <martin@ximian.com>
658 * IMonoSymbolWriter.cs: Ooops, I forgot to remove this.
660 2003-02-08 Martin Baulig <martin@ximian.com>
662 * MonoSymbolDocumentWriter.cs: Removed.
664 * MonoSymbolWriter.cs (SourceFile): Implement ISymbolDocumentWriter.
666 2003-02-08 Martin Baulig <martin@ximian.com>
668 * MonoSymbolFile.cs (GetMethodSource): New public method.
669 (FindMethod): Return the correct index.
671 2003-02-07 Martin Baulig <martin@ximian.com>
673 * MonoSymbolFile.cs (Methods, Sources): New public properties.
675 2003-02-07 Martin Baulig <martin@ximian.com>
677 * MonoSymbolFile.cs (MonoSymbolFile.ReadSymbolFile): New public
678 static method, returns null (without throwing an exception) if the
679 assembly doesn't have any debugging info.
681 2003-02-07 Martin Baulig <martin@ximian.com>
683 * MonoSymbolWriter.cs (MonoSymbolWriter.Initialize): Removed the
684 custom initialization function.
686 * MonoSymbolTableWriter.cs: Removed; the code is now in
687 MonoSymbolFile.cs and MonoSymbolWriter.cs.
689 2003-02-07 Martin Baulig <martin@ximian.com>
691 * MonoSymbolFile.cs: The symbol file is now a resource in the
692 assembly instead of a separate file.
694 * MonoSymbolTable.cs: Did a few more cleanups, sort the line
695 number table and remove duplicate line numbers.
697 2003-02-05 Martin Baulig <martin@ximian.com>
699 Modified the symbol file format to speed up method looks by name
700 and cleaned this up a lot.
702 * MonoSymbolFile.cs: New public class. This is now a public class
703 and writes and reads the symbol file.
705 * IMonoBinaryReader.cs: Removed.
707 * MonoSymbolTable.cs: Set version number to 29.
709 2003-01-17 Zoltan Varga <vargaz@freemail.hu>
711 * MonoSymbolWriter.cs (OpenMethod): Make it work on constructors.
713 2002-10-13 Martin Baulig <martin@gnome.org>
715 * MonoSymbolTable.cs: Set version number to 28.
716 (SourceFileEntry): Read the methods when they're needed.
717 (MethodSourceEntry): Made this a struct, not a class.
719 2002-10-13 Martin Baulig <martin@gnome.org>
721 * MonoSymbolTable.cs: Set version number to 27. Added a source
722 file table which is used to search a method by source file + line number.
724 2002-09-21 Martin Baulig <martin@gnome.org>
726 * MonoSymbolTable.cs: Set version number to 26. Removed all the dynamic
727 stuff, this library now just deals with the compiler generated symbol table.
728 The dynamic stuff is private between the JIT and the debugger.
730 2002-09-21 Martin Baulig <martin@gnome.org>
732 * MonoSymbolTable.cs: Set version number to 25. Added information about
735 2002-09-20 Martin Baulig <martin@gnome.org>
737 * MonoSymbolTable.cs: Set version number to 24. Added a type index
738 table. Write the type of a local variable or a parameter as an index
741 2002-09-20 Martin Baulig <martin@gnome.org>
743 * IMonoSymbolWriter.cs: Remove all the unused interfaces.
745 2002-09-20 Martin Baulig <martin@gnome.org>
747 * MonoSymbolTable.cs: Set version number to 23, include the size
750 2002-09-20 Martin Baulig <martin@gnome.org>
752 * MonoSymbolTable.cs: Set version number to 22. Provide information
753 about parameters and local variables.
755 2002-09-20 Martin Baulig <martin@gnome.org>
757 * IMonoSymbolWriter.cs: Use fullly qualified name for
758 System.Diagnostics.SymbolStore.ISymbolWriter rather than `using' this
759 namespace. This allows us to use the name `ISymbolWriter' in our own
762 2002-09-18 Martin Baulig <martin@gnome.org>
764 * MonoSymbolTable.cs: Set version number to 21. Encode the source file
765 as a 4-byte length field followed by the UTF8 encoded string.
767 2002-09-18 Martin Baulig <martin@gnome.org>
769 * IMonoBinaryReader.cs: New interface.
771 * MonoSymbolTable.cs: Use IMonoBinaryReader instead of binary reader.
773 2002-09-16 Martin Baulig <martin@gnome.org>
775 * MonoSymbolTable.cs: Set version number to 20.
777 2002-09-14 Martin Baulig <martin@gnome.org>
779 * MonoSymbolWriter.cs, IMonoSymbolWriter.cs, MonoSymbolTableWriter.cs:
780 Make all classes and interfaces which don't need to be public internal.
782 2002-09-14 Martin Baulig <martin@gnome.org>
784 * MonoSymbolTable.cs: Use only CLS-compliant types here, bumped version
787 * MonoSymbolTableReader.cs: Removed, this is now in the debugger.
789 2002-09-03 Martin Baulig <martin@gnome.org>
791 * AssemblerWriterI386.cs, IAssemblerWriter.cs, MonoDwarfFileWriter.cs,
792 README, README.relocation-table, csharp-lang.[ch], gdb-csharp-support.patch,
793 gdb-variable-scopes.patch: Removed.
795 2002-09-03 Martin Baulig <martin@gnome.org>
797 * MonoSymbolTableReader.cs (MonoSymbolTableReader.ImageFile): New
800 * MonoSymbolTable.cs: Bumped version number to 18.
802 2002-08-27 Martin Baulig <martin@gnome.org>
804 * MonoSymbolTable.cs (MethodAddress): Removed `TrampolineAddress'.
806 2002-08-27 Martin Baulig <martin@gnome.org>
808 * MonoSymbolTable.cs: Changed the file format in a way that allows us
809 open it read-only and to use a specially malloced area for all the
812 2002-08-25 Martin Baulig <martin@gnome.org>
814 * MonoSymbolTableReader.cs: New file. This is the reader for the
815 new symbol file format.
817 2002-08-24 Martin Baulig <martin@gnome.org>
819 * MonoSymbolTable.cs, MonoSymbolTableWriter.cs: New files. This
820 creates a binary application.dbg file which will be used by the
821 JIT to display source lines for exceptions.
823 * list.unix: Disabled the dwarf file writer in the build.
825 2002-08-23 Martin Baulig <martin@gnome.org>
827 * MonoSymbolWriter.cs (MonoSymbolWriter.Initialize): Added
828 assembly name argument. Since the symbol writer needs to read the
829 final assembly, we need to give it its full pathname.
831 2002-08-23 Martin Baulig <martin@gnome.org>
833 * makefile.gnu, list.unix: Added.
835 2002-07-05 Martin Baulig <martin@gnome.org>
837 * MonoDwarfFileWriter.cs: Added support for types in referenced assemblies.
839 2002-07-05 Martin Baulig <martin@gnome.org>
841 * MonoDwarfFileWriter.cs: Added support for arrays.
843 * gdb-csharp-support.patch: Updated.
845 2002-06-29 Martin Baulig <martin@gnome.org>
847 * MonoDwarfFileWriter.cs (DieInheritance): Make this actually work.
849 2002-06-29 Martin Baulig <martin@gnome.org>
851 * MonoDwarfFileWriter.cs, MonoSymbolWriter.cs: Put all TAG_subprogram's into their
852 corresponding struct/class declarations.
854 2002-06-28 Martin Baulig <martin@gnome.org>
856 * gdb-csharp-support.patch: Updated.
858 2002-06-28 Martin Baulig <martin@gnome.org>
860 * MonoDwarfFileWriter.cs: Use a TAG_string_type when we're using GNU extensions.
861 Make static struct/class fields actually work. Provide a TAG_typedef for struct's
864 2002-05-30 Martin Baulig <martin@gnome.org>
866 * IMonoSymbolWriter (IMonoSymbolWriter): Added custom `Initialize' method.
868 * MonoSymbolWriter.cs (Initialize): The ISymbolWriter's `Initialize' method
869 is no longer supported and throws an exception.
870 (Initialize (string, string[])): New custom initialization function.
872 * MonoDwarfFileWriter.cs (DwarfFileWriter): Added `string[] args' argument
873 to the constructor to pass command line arguments.
875 * gdb-csharp-support.patch: Updated for GDB 5.2.
877 2002-05-30 Martin Baulig <martin@gnome.org>
879 * MonoSymbolWriter.cs (MonoSymbolWriter): The constructor now get's the
880 AssemblyBuilder's `methods' array as third argument.
881 (OpenMethod): Use this array to get the method builder rather than using an
883 (get_method_builder): Removed this interncall.
885 2002-05-25 Martin Baulig <martin@gnome.org>
887 * MonoDwarfFileWriter.cs: Finished the type rewrite, put back strings and arrays.
889 2002-05-24 Martin Baulig <martin@gnome.org>
891 * IMonoSymbolWriter.cs (ISourceMethod): Added `FullName' and `Parameters'.
892 (ITypeHandle): New interface.
894 * DwarfFileWriter.cs: Largely reorganized the type writing code. Types are
895 now represented by ITypeHandle objects which are stored in a per-dwarf-writer
896 hash table. At the moment, all types still need to be in one compile unit due
897 to lacking support in gdb - but this new type code here already supports this.
899 * MonoSymbolWriter.cs: Moved all the subclasses to the top-level and made them
900 public, cleaned up the code, put everything into one compile unit.
901 (DefineLocalVariable): Added a version of this function which takes useful args.
903 2002-05-22 Martin Baulig <martin@gnome.org>
905 * IMonoSymbolWriter.cs (IMonoSymbolWriter): Added `Sources' and `Methods'
908 * MonoDwarfFileWriter.cs (WriteSymbolTable): New public method. Moved the
909 code that writes the "mono_line_numbers" section here from the LineNumberEngine.
911 2002-05-22 Martin Baulig <martin@gnome.org>
913 * IMonoSymbolWriter.cs (IVariable): Replaced Token with `ISourceMethod Method'.
915 * MonoSymbolWriter.cs (MonoSymbolWriter): The constructor now has an additional
916 ModuleBuilder argument.
917 (OpenMethod): Immediately call the `get_method' interncall to get the MethodBase
918 from the token, then store the MethodBase instead of the token. The token may
919 still change during the metadata library's fixup process.
920 (DoFixups): When the image has been written to disk, call the GetToken () method
921 on all MethodBuilders and all ConstructorBuilders to get the final metadata tokens.
923 2002-05-22 Martin Baulig <martin@gnome.org>
925 * AssemblerWriterI386.cs: Don't use GNU extensions and produce assembler
926 output which is free of comments and extra whitespaces so that it's suitable
929 2002-05-22 Martin Baulig <martin@gnome.org>
931 * IMonoSymbolWriter.cs (ISourceMethod): Replaced `MethodInfo MethodInfo' with
932 `MethodBase MethodBase' and added `Type ReturnType'. We're now correctly
933 dealing with constructors and not crashing anymore.
935 2002-05-21 Martin Baulig <martin@gnome.org>
937 * MonoDwarfFileWriter.cs: Write a special line number table which can be read
938 in by the metadata library to get line number information in backtraces.
940 2002-05-06 Martin Baulig <martin@gnome.org>
942 * MonoSymbolWriter.cs (MonoSymbolWriter.Close): Use Assembly.LoadFrom (), not
943 AppDomain.Load () to load the assembly.
945 2002-04-26 Martin Baulig <martin@gnome.org>
947 * gdb-csharp-support.patch: A patch for GDB (against the latest CVS version)
948 to implement C# support.
950 * csharp-lang.c, csharp-lang.h, csharp-mono-lang.c: Copy these into your GDB
951 source directory after applying the patch.
953 2002-04-26 Martin Baulig <martin@gnome.org>
955 * MonoDwarfFileWriter.cs (DieInternalString): Removed.
957 2002-04-25 Martin Baulig <martin@gnome.org>
959 * MonoDwarfFileWriter.cs: Reflect latest MonoString changes.
961 2002-04-13 Martin Baulig <martin@gnome.org>
963 * IMonoSymbolWriter.cs (ISourceBlock): Added `Blocks' property and `AddBlock'
964 method to support nested blocks.
966 * MonoSymbolWriter.cs: Correctly handle nested blocks.
968 * MonoDwarfFileWriter.cs (DieMember): Provide info for all fields, not just for
969 public ones; also added DW_AT_accessibility.
970 (DieVariable): Reflected latest debug-symfile.c changes.
972 2002-04-12 Martin Baulig <martin@gnome.org>
974 * gdb-variable-scopes.patch: A patch for GDB (against the latest CVS version)
975 to implement variable lifetimes.
977 2002-04-12 Martin Baulig <martin@gnome.org>
979 * MonoDwarfFileWriter.cs (DieVariable): Provide info about the variable's
980 lifetime using DW_AT_begin_scope and a new baulig extension DW_AT_end_scope.
982 2002-03-29 Martin Baulig <martin@gnome.org>
984 * AssemblerWriterI386.cs: Rewrote most of the string output function, do the
985 number->string conversion manually. It's now taking about 15 seconds to write
986 a symbol file for MCS, no longer more than a minute.
988 * MonoDwarfFileWriter.cs: Added some profiling code, speeded things up, fixed
991 2002-03-25 Martin Baulig <martin@gnome.org>
993 * MonoDwarfFileWriter.cs (CreateType): Return a `DieType'.
994 (RegisterType): Add the type to the type hash before creating dependency types
995 so we don't get recursion loops.
996 (RegisterPointerType): New func to register a "pointer to type" type.
997 (DieTypeDef, DiePointerType, DieArrayType, DieStringType, DieClassType): New
998 types; added support for strings, arrays and basic support for classes.
1000 2002-03-24 Martin Baulig <martin@gnome.org>
1002 * IMonoSymbolWriter.cs: Killed all methods in this interface, no longer needed.
1004 * MonoSymbolWriter.cs (MonoSymbolWriter): The constructor now takes a string
1005 argument which is the full pathname of the assembly - you must call Close()
1006 after the assembly has been written to disk since the symbol writer needs to
1007 load the finished assembly to get its metadata.
1009 * MonoDwarfFileWriter.cs: Added support for enums and structs.
1011 2002-03-24 Martin Baulig <martin@gnome.org>
1013 * MonoDwarfFileWriter.cs: Added support for method parameters.
1015 2002-03-24 Martin Baulig <martin@gnome.org>
1017 * IMonoSymbolWriter.cs (IMonoSymbolWriter): Removed my custom OpenMethod(),
1018 we're now using the ISymbolWriter's method.
1019 (IVariable): Added `byte[] Signature' property.
1021 * MonoSymbolWriter.cs (SetAssembly): New method. This must be called before
1022 Close(); the assembly parameter is the already-written assembly, ie. it must
1023 contain the full metadata.
1024 (OpenMethod): Only take the token argument and set MethodInfo later in DoFixups.
1025 (SetMethodSourceRange): You must call this function to tell the symbol writer
1026 in which source file the method is defined.
1027 (DefineLocal): Store the signature in the local.
1028 (DoFixups): Use two new interncalls to set the SourceMethod's MethodInfo field
1029 and the LocalVariable's Type field.
1031 2002-03-23 Martin Baulig <martin@gnome.org>
1033 * IMonoSymbolWriter.cs (ISourceBlock): New interface.
1034 (ILocalVariable): Renamed this interface to IVariable.
1035 (IVariable): Added Line, Type, Token.
1036 (ILocalVariable, IMethodParameter): New interfaces, derive from IVariable.
1037 (ISourceMethod): Added Blocks. Renamed FirstLine and LastLine to Start and End,
1038 changed their type to ISourceLine. Removed CodeSize.
1039 (ISourceLine): Renamed Line to Row, added Column. Added OffsetType and Offset.
1041 * MonoDwarfFileWriter.cs (MonoDwarfFileWriter.DieLexicalBlock): New class.
1042 (MonoDwarfFileWriter.DieMethodVariable): New class.
1044 * MonoSymbolWriter.cs (OpenScope, CloseScope): Implemented.
1045 Reflected latest IMonoSymbolWriter interface changes.
1047 2002-03-20 Martin Baulig <martin@gnome.org>
1049 * IAssemblerWriter.cs: New interface.
1051 * AssemblerWriterI386.cs: New class.
1053 * MonoDwarfFileWriter.cs: Use the IAssemblerWriter interface to make this class
1054 platform and assembler independent.
1056 2002-03-20 Martin Baulig <martin@gnome.org>
1058 * IMonoSymbolWriter.cs (ISourceMethod): Added FirstLine, LastLine, CodeSize and
1061 * MonoDwarfFileWriter.cs: Implemented line number support.
1063 2002-03-19 Martin Baulig <martin@gnome.org>
1065 * IMonoSymbolWriter.cs (ISourceFile, ISourceMethod, ISourceLine, ILocalVariable):
1068 * IMonoSymbolWriter.cs (OpenMethod): Take a System.Reflection.MethodInfo, not
1071 2002-03-19 Martin Baulig <martin@gnome.org>
1073 This is an implementation of the System.Diagnostics.SymbolStore.SymbolWriter
1074 interface. It's still work in progress and not yet used anywhere.
1076 There is some preliminary documentation in the source files and some more
1077 docu in the README and README.relocation-table files.
1079 * IMonoSymbolWriter.cs: New file.
1080 * MonoDwarfFileWriter.cs: New file.
1081 * MonoSymbolDocumentWriter.cs: New file.
1082 * MonoSymbolWriter.cs: New file.
1084 * README, README.relocation-table: Documentation.