1 2008-06-10 Martin Baulig <martin@ximian.com>
4 (MonoSymbolWriter.CloseMethod): Quick-fix; still a lot of broken
7 2008-06-05 Martin Baulig <martin@ximian.com>
10 (MethodEntry.Flags): New public enum.
11 (MethodEntry.MethodFlags): New public fields.
12 (MethodEntry.LocalNamesAmbiguous): Removed; this is now part of
16 (MonoSymbolWriter.SetCompilerGenerated): New public method.
18 2008-06-02 Martin Baulig <martin@ximian.com>
21 (ICompileUnit): New public interface.
22 (MonoSymbolWriter.Sources): Removed.
23 (MonoSymbolWriter.OpenMethod): Take an `ICompileUnit', removed
24 `startRow', `startColumn', `endRow' and `endColumn'.
25 (MonoSymbolWriter.DefineCompilationUnit): New public method.
26 (MonoSymbolWriter.DefineNamespace): Operate on `ICompileUnit'.
29 (MonoSymbolFile.CompileUnit): New public properties.
32 (OffsetTable): Replace `Version' by `MajorVersion' and
33 `MinorVersion'. Add `CompileUnitCount', `CompileUnitTableOffset'
34 and `CompileUnitTableSize'.
35 (CompileUnitEntry): New public method.
36 (LineNumberTable): Removed `StartFile' and `StartRow'.
37 (MethodEntry): Removed `StartRow' and `EndRow'.
39 2008-06-02 Martin Baulig <martin@ximian.com>
41 * SymbolWriterImpl.cs: Removed.
43 2008-05-28 Martin Baulig <martin@ximian.com>
46 (MethodIndexEntry): Removed.
47 (MethodEntry): Moved everything into the data section, so it can
48 be read dynamically on-the-fly. The `MethodEntry' now has a fixed
49 size of 12 bytes in the symbol file containing only token, data
50 offset and line number table offset.
52 2008-05-28 Martin Baulig <martin@ximian.com>
55 (MethodEntry.LocalTypeIndices): Removed.
56 (MethodEntry.GetLineNumberTable): New public method; replaces the
57 `LineNumbers' and `NumLineNumbers' fields.
58 (MethodEntry.GetLocals): New public method; replaces the `Locals'
59 and `NumLocals' fields.
60 (MethodEntry.GetCodeBlocks): New public method; replaces the
61 `CodeBlocks' and `NumCodeBlocks' fields.
62 (MethodEntry.GetScopeVariables): New public method; replaces the
63 `ScopeVariables' and `NumScopeVariables' fields.
64 (MethodEntry.GetRealName): New public method; replaces `RealName'.
65 (MethodEntry): Removed the old fields.
67 2008-05-28 Martin Baulig <martin@ximian.com>
70 (MethodSourceEntry): Removed.
71 (SourceFileEntry.Methods): Removed.
73 2008-05-26 Martin Baulig <martin@ximian.com>
76 (MonoSymbolWriter.DefineDocument): Added overloaded version taking
77 additional `byte[] guid' and `byte[] hash' arguments.
80 (OffsetTable.IsAspxSource): New public field.
81 (SourceFileEntry): Completely redesigned this; only write index
82 and data offset, everything else goes into the data section.
83 (SourceFileEntry.AutoGenerated): New public property.
84 (SourceFileEntry.CheckChecksum): New public method.
86 2008-05-16 Martin Baulig <martin@ximian.com>
89 (LineNumberEntry.IsHidden): New public field.
90 (LineNumberTable): Add support for hidden line numbers.
93 (MonoSymbolWriter.MarkSequencePoint): Add overloaded version
94 taking an additional `bool is_hidden' argument.
96 2008-05-05 Martin Baulig <martin@ximian.com>
99 (MonoSymbolFile.OffsetTable): New public property.
100 (MonoSymbolFile.FileName): New public readonly field.
103 (OffsetTable): Make this a class and not a struct.
104 (OffsetTable): Add `LineNumberTable_LineBase',
105 `LineNumberTable_LineRange' and `LineNumberTable_OpcodeBase'.
106 (LineNumberEntry): Removed the reading/writing functions.
107 (LineNumberTable): Get `LineBase', `LineRange' and `OpcodeBase'
108 from the `OffsetTable' rather than hardcoding it here.
109 (MethodEntry): Make `NumLineNumbers' and `LineNumbers' properties;
110 massive cleanup, use leb128 everywhere and removed all the
113 2008-04-29 Martin Baulig <martin@ximian.com>
116 (OffsetTable.Version): Bump to 42.
117 (LineNumberTable): New public class. Provides a new line number
118 table format which is based on Dwarf 2.
119 (MethodEntry): Replaced BuildLineNumberTable() by
120 CheckLineNumberTable(); we're now more strict than we were before
121 and disallow not monotonic increasing entries, we don't check for
122 duplicates anymore since the new LineNumberTable takes care of that.
123 (LineEntry): Added public `File' field which is a file index.
125 * MonoSymbolWriter.cs
126 (MonoSymbolWriter.MarkSequencePoint): Added `int file' argument.
128 2008-04-29 Martin Baulig <martin@ximian.com>
130 **** Kahalo changes start here ****
132 2008-05-05 Martin Baulig <martin@ximian.com>
134 Drop support for old pre-terrania symbol files.
137 (MonoSymbolFile.CompatibilityMode): Removed.
140 (LexicalBlockEntry): Removed this obsolete class.
142 2008-04-02 Martin Baulig <martin@ximian.com>
144 * *.cs: Remove the `#if !DISABLE_TERRANIA_CHANGES' conditionals.
146 2008-03-14 Martin Baulig <martin@ximian.com>
148 Merged the debugger's `terrania' branch into trunk.
150 2008-03-13 Martin Baulig <martin@ximian.com>
152 * *.cs: Add `DISABLE_TERRANIA_CHANGES' conditionals everywhere
153 around the new code; they'll be removed when I'm back from my
156 2008-03-13 Martin Baulig <martin@ximian.com>
159 (LexicalBlockEntry): Mark this as obsolete.
161 2008-03-11 Martin Baulig <martin@ximian.com>
163 * MonoSymbolTable.cs (MethodEntry): Removed `LocalTypeIndices'.
165 2008-03-10 Martin Baulig <martin@ximian.com>
168 (LocalVariableEntry): Removed the `Signature' field; we don't
169 write this into the symbol file anymore.
171 * MonoSymbolWriter.cs
172 (MonoSymbolWriter.DefineLocalVariable): The `byte[] signature'
173 argument is now obsolete.
175 2008-02-19 Martin Baulig <martin@ximian.com>
178 (MonoSymbolFile.Version): New public readonly field.
179 (MonoSymbolFile.CompatibilityMode): Likewise; this is enabled if
180 we're reading an old `39' file.
183 (OffsetTable.CompatibilityVersion): New public const; we keep
184 backwards compatibility with this version.
185 (OffsetTable.Write): Add `version' argument; allow writing the old
187 (MethodEntry): Check `file.CompatiblityMode'.
189 2008-02-19 Martin Baulig <martin@ximian.com>
191 * MonoSymbolWriter.cs
192 (MonoSymbolWriter.SetRealMethodName): New public method.
195 (MethodEntry.RealName): New public field; this is only used for
196 anonymous methods and iterators.
198 2008-02-15 Martin Baulig <martin@ximian.com>
201 (CodeBlockEntry): New public class.
202 (MethodEntry): Replace the old lexical blocks with a new concept
203 of `code blocks'. Keep backwards compatibility.
205 * MonoSymbolWriter.cs
206 (MonoSymbolWriter): Add OpenCompilerGeneratedBlock(),
207 CloseCompilerGeneratedBlock(), StartIteratorBody(),
208 EndIteratorBody(), StartIteratorDispatcher(),
209 EndIteratorDispatcher().
211 2008-02-02 Martin Baulig <martin@ximian.com>
214 (OffsetTable.Version): Bump to 40.
215 (OffsetTable): Add `AnonymousScopeCount',
216 `AnonymousScopeTableOffset' and `AnonymousScopeTableSize'.
217 (CapturedVariable): New public struct.
218 (CapturedScope): New public struct.
219 (ScopeVariable): New public struct.
220 (AnonymousScopeEntry): New public class.
221 (SourceFileEntry.DefineMethod): Added overloaded version taking an
222 additional `ScopeVariable[]' argument.
225 (MonoSymbolFile.AnonymousScopeCount): New public property.
226 (MonoSymbolFile.GetAnonymousScope): New public method.
228 * MonoSymbolWriter.cs
229 (MonoSymbolWriter.DefineAnonymousScope): New public method.
230 (MonoSymbolWriter.DefineCapturedLocal): New public method.
231 (MonoSymbolWriter.DefineCapturedParameter): New public method.
232 (MonoSymbolWriter.DefineCapturedThis): New public method.
233 (MonoSymbolWriter.DefineCapturedScope): New public method.
234 (MonoSymbolWriter.DefineScopeVariable): New public method.
236 2008-02-02 Martin Baulig <martin@ximian.com>
238 ***** Terrania changes start at this point *****
240 2007-08-27 Jb Evain <jbevain@novell.com>
242 * MonoSymbolFile.cs, SymbolWriterImpl.cs: add some Cecil specific
243 code protected by a CECIL defined.
245 Mon Jan 29 16:51:33 CET 2007 Paolo Molaro <lupus@ximian.com>
247 * MonoSymbolWriter.cs: unlink the file before writing it, since it may
248 be mmapped by the runtime.
250 2007-01-29 Martin Baulig <martin@ximian.com>
253 (MonoSymbolFile.Assembly): Removed this property.
254 (MonoSymbolFile.Guid): New public property.
256 2006-09-24 Joshua Tauberer <jit@occams.info>
258 * MonoSymbolFile.cs: Allow MonoSymbolFile to be created
259 without passing a System.Reflection.Assembly, so we can
260 use this with Cecil. Only the GUID check is avoided.
262 2005-09-14 Martin Baulig <martin@ximian.com>
264 * MonoSymbolTable.cs (OffsetTable): Bump version to 39.
265 (LocalVariableEntry.Index): New field.
267 * MonoSymbolWriter.cs
268 (MonoSymbolWriter.DefineLocalVariable): Added `int index' argument.
271 (MonoDebuggerSupport.GetLocalIndex): New method.
273 2005-09-05 Martin Baulig <martin@ximian.com>
275 * MonoSymbolFile.cs (MonoDebuggerSupport): Make this internal and
276 move everything we don't need here into the debugger.
278 2005-06-20 Chris Toshok <toshok@ximian.com>
280 * MonoSymbolFile.cs (MonoSymbolFile.Dispose): make public.
282 2005-05-25 Lluis Sanchez Gual <lluis@novell.com>
284 * SymbolWriterImpl.cs: An implementation of ISymbolWriter. It is just a
285 wrapper for the MonoSymbolWriter class that mcs is using.
287 2005-04-04 Marek Safar <marek.safar@seznam.cz>
289 * MonoSymbolFile.cs: Removed unused fields.
291 2005-02-10 Martin Baulig <martin@ximian.com>
294 (MonoDebuggerSupport.MakeArrayType): New public method.
295 (MonoDebuggerSupport.ResolveType): New public method.
296 (MonoDebuggerSupport.GetTypeToken): New public method.
298 2005-02-10 Martin Baulig <martin@ximian.com>
300 * MonoSymbolFile.cs (MonoDebuggerSupport.GetMethodIndex): New
303 2004-11-23 Ben Maurer <bmaurer@ximian.com>
305 * MonoSymbolFile.cs (CreateSymbolFile): Take a filestream to
306 write to. Do not return a byte array.
308 (MyMemoryStream): Unused now.
310 * MonoSymbolWriter.cs: Take advantage of the api change above.
312 Overall, this prevents us from having to allocate the debug file
313 in ram. For corlib, the debug file is about 1.5 mb. So it takes up
314 over 3 mb (you must write it in chunks then get the big array)
316 With the file stream, it takes up 4 kb or so for the buffer.
318 2004-10-20 Martin Baulig <martin@ximian.com>
320 * MonoSymbolFile.cs (MonoSymbolFile.Write): Sort the method table
321 before actually writing it to disk and update MethodEntry.Index.
323 * MonoSymbolTable.cs (MethodEntry.Index): Make this a writable
324 property; set it after creating all the methods and sorting the
327 2004-09-21 Martin Baulig <martin@ximian.com>
329 * MonoSymbolFile.cs (MonoDebuggerSupport.CheckRuntimeVersion): New
332 2004-08-27 Martin Baulig <martin@ximian.com>
334 * MonoSymbolFile.cs (MonoSymbolFile..ctor): Read the GUID from the
335 symbol file before reading the OffsetTable.
337 2004-08-27 Chris Toshok <toshok@ximian.com>
339 * MonoSymbolFile.cs (MonoSymbolFile.ReadSymbolFile): pass name to
340 MonoSymbolFile.ctor, not filename, so we load the .mdb file
342 (MonoSymbolFile.ctor): pass FileAccess.Read to the FileStream
345 2004-08-27 Martin Baulig <martin@ximian.com>
347 * MonoSymbolFile.cs (MonoDebuggerSupport.GetGuid): The function is
348 called Module.Mono_GetGuid(), not Module.MonoDebugger_GetGuid().
350 2004-07-30 Martin Baulig <martin@ximian.com>
352 The library is now called Mono.CompilerServices.SymbolWriter.dll
353 and is in the Mono.CompilerServices.SymbolWriter namespace.
355 * MonoSymbolFile.cs (MonoDebuggerSupport.GetGuid): New public
357 (MonoSymbolFile.WriteString): Use the BinaryWriter's method.
358 (MonoSymbolFile.ReadString): Use the BinaryReader's method.
359 (MonoSymbolFile.Write): Write the module's Guid into the symbol
362 * MonoSymbolTable.cs, MonoSymbolWriter.cs: Reworked the API.
364 2004-07-27 Martin Baulig <martin@ximian.com>
366 * MonoSymbolFile.cs (MonoSymbolFile.Write): Sort the methods
367 according to their token values.
368 (MonoSymbolFile.ReadSymbolFile): Support reading the debugging
369 information from an external ".mdb" file.
372 (SourceFileEntry): Make the .ctor protected, not internal.
373 (SourceFileEntry.DefineMethod): This is no longer specific to
374 System.Reflection(.Emit).
375 (MethodEntry): We don't need the class and parameter types, the
376 JIT is already getting this information automatically.
377 (MethodEntry.ClassTypeIndex): Make this obsolete.
378 (MethodEntry.ParamTypeIndicies): Likewise.
380 2004-07-02 Raja R Harinath <rharinath@novell.com>
382 * Makefile (LIBRARY_USE_INTERMEDIATE_FILE): Define.
383 (LIBRARY_COMPILE): Simplify.
385 2004-06-24 Raja R Harinath <rharinath@novell.com>
387 * Makefile (LIBRARY_COMPILE): Only define for W32.
389 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
391 * Makefile: build using mcs on windows.
393 2004-06-19 Martin Baulig <martin@ximian.com>
396 (SourceFileTable.Namespaces): New public property.
398 2004-06-02 Martin Baulig <martin@ximian.com>
400 Set version number to 37.
402 2004-05-23 Ben Maurer <bmaurer@users.sourceforge.net>
404 * MonoSymbolTable.cs (BuildLineNumberTable): Avoid arraylist.
406 2004-01-16 Martin Baulig <martin@ximian.com>
408 Set version number to 36.
410 * MonoSymbolFile.cs (MonoSymbolFile): Removed 'FindMethod' and
413 * MonoSymbolTable.cs (MethodEntry): Don't write the method's full
414 name into the symbol file.
416 2004-01-16 Martin Baulig <martin@ximian.com>
418 * MonoSymbolFile.cs (MonoDebuggerSupport): As suggested by Ben
419 Maurer, create a delegate type for each of the methods and then
422 2004-01-15 Martin Baulig <martin@ximian.com>
424 * MonoSymbolFile.cs (MonoDebuggerSupport): New public class
425 containing static wrappers for calling the `MonoDebugger_*'
426 function in S.R.Assembly.
428 2004-01-13 Martin Baulig <martin@ximian.com>
430 * MonoSymbolTable.cs: Added more #region's and a comment at the
433 * MonoSymbolWriter.cs (SourceMethod.BuildLineNumberTable): Removed
434 it here since it's in MethodEntry again.
436 2004-01-13 Martin Baulig <martin@ximian.com>
438 * ChangeLog, MonoSymbolTable.cs: Reviewed Ben's patches. For
439 those which are not ok, I'll add detailed comments to the source
442 2003-12-28 Ben Maurer <bmaurer@users.sourceforge.net>
444 [Revision 1.41, not approved. Martin]
445 * MonoSymbolTable.cs (MethodEntry): kill more
448 2003-12-28 Ben Maurer <bmaurer@users.sourceforge.net>
450 [Revision 1.40, not approved. Martin]
451 * MonoSymbolTable.cs (MethodEntry): Remove the
452 SourceFileIndex field, we already have the info.
454 2003-12-28 Ben Maurer <bmaurer@users.sourceforge.net>
456 [Revision 1.39, approved. Martin]
457 * MonoSymbolTable.cs: Don't make the MethodIndexEntry
458 part of the method entry class, because it just
459 takes up extra space.
461 2003-12-28 Ben Maurer <bmaurer@users.sourceforge.net>
463 [Revisions 1.37 and 1.38; not approved. Martin]
464 * MonoSymbolTable.cs (MethodEntry.BuildLineNumberTable): Removed.
466 * MonoSymbolTable.cs, MonoSymbolWriter.cs: Use
467 fewer arrays, dont use arraylists with structs.
469 2003-12-27 Ben Maurer <bmaurer@users.sourceforge.net>
471 * MonoSymbolFile.cs: Much, much better string writing.
473 2003-12-20 Ben Maurer <bmaurer@users.sourceforge.net>
475 [Revision 1.36, approved. Martin]
476 * MonoSymbolTable.cs: Fewer StringBuilder allocs.
478 2003-12-08 Zoltan Varga <vargaz@freemail.hu>
480 * MonoSymbolWriter.cs: Create ArrayLists only when needed.
482 2003-12-07 Ben Maurer <bmaurer@users.sourceforge.net>
484 [Revision 1.35, approved. Martin]
485 * MonoSymbolTable.cs: It is faster to do a linear search
486 than it is to make a hashtable. Even though the linear
487 search is O(n^2) while the hashtable is O(n), the allocation
488 cost for a hashtable is *very* high, especially when only
489 a few members will be added.
491 2003-09-06 Martin Baulig <martin@ximian.com>
493 * MonoSymbolFile.cs: Removed debugging output.
495 2003-08-05 Martin Baulig <martin@ximian.com>
497 * MonoSymbolTable.cs (MethodEntry.Index): New public field.
499 2003-06-27 Zoltan Varga <vargaz@freemail.hu>
501 * MonoSymbolWriter.cs: Enable calling of DefineDocument multiple
502 times with the same URL.
504 2003-06-10 Zoltan Varga <vargaz@freemail.hu>
506 * MonoSymbolFile.cs: Fix off-by-one error.
508 2003-03-22 Martin Baulig <martin@ximian.com>
510 * MonoSymbolTable.cs (MethodEntry.LocalNamesAmbiguous): New public
511 field. Specifies whether two local variables have the same name.
513 2003-03-13 Martin Baulig <martin@ximian.com>
515 Added basic support for lexical scopes. This is just to tell a
516 debugger that a local variable is only available in a specific
517 lexical scope and that another variable of the same name may exist
518 in another lexical scope. See debugger/test/TestLexicalScope.cs
521 * MonoSymbolTable.cs (LexicalScopeEntry): New class.
522 (LocalVariableEntry): Added `BlockIndex' field which specifies the
523 lexical scope of this variable.
525 * MonoSymbolWriter.cs (SourceBlock): Removed, we're now using
526 LexicalScopeEntry instead.
528 2003-02-22 Martin Baulig <martin@ximian.com>
530 * MonoSymbolTable.cs: Incremented version number.
532 2003-02-22 Martin Baulig <martin@ximian.com>
534 * MonoSymbolFile.cs (MonoSymbolFile.FindMethod): Fixed a bug.
535 (MonoSymbolFile.MethodLookup): New method.
537 2003-02-18 Martin Baulig <martin@ximian.com>
539 * MonoSymbolFile.cs (MonoSymbolFile.GetMethod): Added overloaded
540 version which takes a MethodBase.
542 2003-02-18 Martin Baulig <martin@ximian.com>
544 * MonoSymbolTable.cs (MethodIndexEntry): New public struct.
546 * MonoSymbolFile.cs (MonoSymbolFile.GetMethodByToken): New method.
548 2003-02-18 Martin Baulig <martin@ximian.com>
550 * MonoSymbolFile.cs (MonoSymbolFile.Assembly): New public property.
552 * MonoSymbolTable.cs (MethodEntry.MethodBase): New public property.
553 (MethodEntry.LocalTypes): New public variable.
555 2003-02-18 Martin Baulig <martin@ximian.com>
557 * MonoSymbolFile.cs (MethodEntry.ThisTypeIndex): Renamed to
558 ClassTypeIndex; provide this for all methods so we can get the
559 class of static methods.
561 2003-02-10 Nick Drochak <ndrochak@gol.com>
563 * Mono.CSharp.Debugger.build: passing the /r using an 'arg' node works.
564 The <include> node wasn't getting to the compiler. This fixes build
567 * MonoSymbolFile.cs: Qualify which Min method. Fixes build breakage
570 2003-02-09 Martin Baulig <martin@ximian.com>
572 * MonoSymbolWriter.cs (MonoSymbolWriter.ctor): We don't need the
573 `mbuilder_array' anymore.
575 2003-02-09 Martin Baulig <martin@ximian.com>
577 * MonoSymbolWriter.cs (SourceFile): Derive from SourceFileEntry.
578 (SourceBlock): We don't need source lines here.
579 (SourceMethod): We're always constructed with source info.
581 * MonoSymbolTable.cs: Added support for namespaces.
582 (NamespaceEntry): New struct.
583 (SourceFileEntry.DefineNamespace): New method.
584 (MethodEntry.BuildLineNumberTable): The table is already sorted,
585 so we don't need to do this here.
587 2003-02-09 Martin Baulig <martin@ximian.com>
589 * IMonoSymbolWriter.cs: Ooops, I forgot to remove this.
591 2003-02-08 Martin Baulig <martin@ximian.com>
593 * MonoSymbolDocumentWriter.cs: Removed.
595 * MonoSymbolWriter.cs (SourceFile): Implement ISymbolDocumentWriter.
597 2003-02-08 Martin Baulig <martin@ximian.com>
599 * MonoSymbolFile.cs (GetMethodSource): New public method.
600 (FindMethod): Return the correct index.
602 2003-02-07 Martin Baulig <martin@ximian.com>
604 * MonoSymbolFile.cs (Methods, Sources): New public properties.
606 2003-02-07 Martin Baulig <martin@ximian.com>
608 * MonoSymbolFile.cs (MonoSymbolFile.ReadSymbolFile): New public
609 static method, returns null (without throwing an exception) if the
610 assembly doesn't have any debugging info.
612 2003-02-07 Martin Baulig <martin@ximian.com>
614 * MonoSymbolWriter.cs (MonoSymbolWriter.Initialize): Removed the
615 custom initialization function.
617 * MonoSymbolTableWriter.cs: Removed; the code is now in
618 MonoSymbolFile.cs and MonoSymbolWriter.cs.
620 2003-02-07 Martin Baulig <martin@ximian.com>
622 * MonoSymbolFile.cs: The symbol file is now a resource in the
623 assembly instead of a separate file.
625 * MonoSymbolTable.cs: Did a few more cleanups, sort the line
626 number table and remove duplicate line numbers.
628 2003-02-05 Martin Baulig <martin@ximian.com>
630 Modified the symbol file format to speed up method looks by name
631 and cleaned this up a lot.
633 * MonoSymbolFile.cs: New public class. This is now a public class
634 and writes and reads the symbol file.
636 * IMonoBinaryReader.cs: Removed.
638 * MonoSymbolTable.cs: Set version number to 29.
640 2003-01-17 Zoltan Varga <vargaz@freemail.hu>
642 * MonoSymbolWriter.cs (OpenMethod): Make it work on constructors.
644 2002-10-13 Martin Baulig <martin@gnome.org>
646 * MonoSymbolTable.cs: Set version number to 28.
647 (SourceFileEntry): Read the methods when they're needed.
648 (MethodSourceEntry): Made this a struct, not a class.
650 2002-10-13 Martin Baulig <martin@gnome.org>
652 * MonoSymbolTable.cs: Set version number to 27. Added a source
653 file table which is used to search a method by source file + line number.
655 2002-09-21 Martin Baulig <martin@gnome.org>
657 * MonoSymbolTable.cs: Set version number to 26. Removed all the dynamic
658 stuff, this library now just deals with the compiler generated symbol table.
659 The dynamic stuff is private between the JIT and the debugger.
661 2002-09-21 Martin Baulig <martin@gnome.org>
663 * MonoSymbolTable.cs: Set version number to 25. Added information about
666 2002-09-20 Martin Baulig <martin@gnome.org>
668 * MonoSymbolTable.cs: Set version number to 24. Added a type index
669 table. Write the type of a local variable or a parameter as an index
672 2002-09-20 Martin Baulig <martin@gnome.org>
674 * IMonoSymbolWriter.cs: Remove all the unused interfaces.
676 2002-09-20 Martin Baulig <martin@gnome.org>
678 * MonoSymbolTable.cs: Set version number to 23, include the size
681 2002-09-20 Martin Baulig <martin@gnome.org>
683 * MonoSymbolTable.cs: Set version number to 22. Provide information
684 about parameters and local variables.
686 2002-09-20 Martin Baulig <martin@gnome.org>
688 * IMonoSymbolWriter.cs: Use fullly qualified name for
689 System.Diagnostics.SymbolStore.ISymbolWriter rather than `using' this
690 namespace. This allows us to use the name `ISymbolWriter' in our own
693 2002-09-18 Martin Baulig <martin@gnome.org>
695 * MonoSymbolTable.cs: Set version number to 21. Encode the source file
696 as a 4-byte length field followed by the UTF8 encoded string.
698 2002-09-18 Martin Baulig <martin@gnome.org>
700 * IMonoBinaryReader.cs: New interface.
702 * MonoSymbolTable.cs: Use IMonoBinaryReader instead of binary reader.
704 2002-09-16 Martin Baulig <martin@gnome.org>
706 * MonoSymbolTable.cs: Set version number to 20.
708 2002-09-14 Martin Baulig <martin@gnome.org>
710 * MonoSymbolWriter.cs, IMonoSymbolWriter.cs, MonoSymbolTableWriter.cs:
711 Make all classes and interfaces which don't need to be public internal.
713 2002-09-14 Martin Baulig <martin@gnome.org>
715 * MonoSymbolTable.cs: Use only CLS-compliant types here, bumped version
718 * MonoSymbolTableReader.cs: Removed, this is now in the debugger.
720 2002-09-03 Martin Baulig <martin@gnome.org>
722 * AssemblerWriterI386.cs, IAssemblerWriter.cs, MonoDwarfFileWriter.cs,
723 README, README.relocation-table, csharp-lang.[ch], gdb-csharp-support.patch,
724 gdb-variable-scopes.patch: Removed.
726 2002-09-03 Martin Baulig <martin@gnome.org>
728 * MonoSymbolTableReader.cs (MonoSymbolTableReader.ImageFile): New
731 * MonoSymbolTable.cs: Bumped version number to 18.
733 2002-08-27 Martin Baulig <martin@gnome.org>
735 * MonoSymbolTable.cs (MethodAddress): Removed `TrampolineAddress'.
737 2002-08-27 Martin Baulig <martin@gnome.org>
739 * MonoSymbolTable.cs: Changed the file format in a way that allows us
740 open it read-only and to use a specially malloced area for all the
743 2002-08-25 Martin Baulig <martin@gnome.org>
745 * MonoSymbolTableReader.cs: New file. This is the reader for the
746 new symbol file format.
748 2002-08-24 Martin Baulig <martin@gnome.org>
750 * MonoSymbolTable.cs, MonoSymbolTableWriter.cs: New files. This
751 creates a binary application.dbg file which will be used by the
752 JIT to display source lines for exceptions.
754 * list.unix: Disabled the dwarf file writer in the build.
756 2002-08-23 Martin Baulig <martin@gnome.org>
758 * MonoSymbolWriter.cs (MonoSymbolWriter.Initialize): Added
759 assembly name argument. Since the symbol writer needs to read the
760 final assembly, we need to give it its full pathname.
762 2002-08-23 Martin Baulig <martin@gnome.org>
764 * makefile.gnu, list.unix: Added.
766 2002-07-05 Martin Baulig <martin@gnome.org>
768 * MonoDwarfFileWriter.cs: Added support for types in referenced assemblies.
770 2002-07-05 Martin Baulig <martin@gnome.org>
772 * MonoDwarfFileWriter.cs: Added support for arrays.
774 * gdb-csharp-support.patch: Updated.
776 2002-06-29 Martin Baulig <martin@gnome.org>
778 * MonoDwarfFileWriter.cs (DieInheritance): Make this actually work.
780 2002-06-29 Martin Baulig <martin@gnome.org>
782 * MonoDwarfFileWriter.cs, MonoSymbolWriter.cs: Put all TAG_subprogram's into their
783 corresponding struct/class declarations.
785 2002-06-28 Martin Baulig <martin@gnome.org>
787 * gdb-csharp-support.patch: Updated.
789 2002-06-28 Martin Baulig <martin@gnome.org>
791 * MonoDwarfFileWriter.cs: Use a TAG_string_type when we're using GNU extensions.
792 Make static struct/class fields actually work. Provide a TAG_typedef for struct's
795 2002-05-30 Martin Baulig <martin@gnome.org>
797 * IMonoSymbolWriter (IMonoSymbolWriter): Added custom `Initialize' method.
799 * MonoSymbolWriter.cs (Initialize): The ISymbolWriter's `Initialize' method
800 is no longer supported and throws an exception.
801 (Initialize (string, string[])): New custom initialization function.
803 * MonoDwarfFileWriter.cs (DwarfFileWriter): Added `string[] args' argument
804 to the constructor to pass command line arguments.
806 * gdb-csharp-support.patch: Updated for GDB 5.2.
808 2002-05-30 Martin Baulig <martin@gnome.org>
810 * MonoSymbolWriter.cs (MonoSymbolWriter): The constructor now get's the
811 AssemblyBuilder's `methods' array as third argument.
812 (OpenMethod): Use this array to get the method builder rather than using an
814 (get_method_builder): Removed this interncall.
816 2002-05-25 Martin Baulig <martin@gnome.org>
818 * MonoDwarfFileWriter.cs: Finished the type rewrite, put back strings and arrays.
820 2002-05-24 Martin Baulig <martin@gnome.org>
822 * IMonoSymbolWriter.cs (ISourceMethod): Added `FullName' and `Parameters'.
823 (ITypeHandle): New interface.
825 * DwarfFileWriter.cs: Largely reorganized the type writing code. Types are
826 now represented by ITypeHandle objects which are stored in a per-dwarf-writer
827 hash table. At the moment, all types still need to be in one compile unit due
828 to lacking support in gdb - but this new type code here already supports this.
830 * MonoSymbolWriter.cs: Moved all the subclasses to the top-level and made them
831 public, cleaned up the code, put everything into one compile unit.
832 (DefineLocalVariable): Added a version of this function which takes useful args.
834 2002-05-22 Martin Baulig <martin@gnome.org>
836 * IMonoSymbolWriter.cs (IMonoSymbolWriter): Added `Sources' and `Methods'
839 * MonoDwarfFileWriter.cs (WriteSymbolTable): New public method. Moved the
840 code that writes the "mono_line_numbers" section here from the LineNumberEngine.
842 2002-05-22 Martin Baulig <martin@gnome.org>
844 * IMonoSymbolWriter.cs (IVariable): Replaced Token with `ISourceMethod Method'.
846 * MonoSymbolWriter.cs (MonoSymbolWriter): The constructor now has an additional
847 ModuleBuilder argument.
848 (OpenMethod): Immediately call the `get_method' interncall to get the MethodBase
849 from the token, then store the MethodBase instead of the token. The token may
850 still change during the metadata library's fixup process.
851 (DoFixups): When the image has been written to disk, call the GetToken () method
852 on all MethodBuilders and all ConstructorBuilders to get the final metadata tokens.
854 2002-05-22 Martin Baulig <martin@gnome.org>
856 * AssemblerWriterI386.cs: Don't use GNU extensions and produce assembler
857 output which is free of comments and extra whitespaces so that it's suitable
860 2002-05-22 Martin Baulig <martin@gnome.org>
862 * IMonoSymbolWriter.cs (ISourceMethod): Replaced `MethodInfo MethodInfo' with
863 `MethodBase MethodBase' and added `Type ReturnType'. We're now correctly
864 dealing with constructors and not crashing anymore.
866 2002-05-21 Martin Baulig <martin@gnome.org>
868 * MonoDwarfFileWriter.cs: Write a special line number table which can be read
869 in by the metadata library to get line number information in backtraces.
871 2002-05-06 Martin Baulig <martin@gnome.org>
873 * MonoSymbolWriter.cs (MonoSymbolWriter.Close): Use Assembly.LoadFrom (), not
874 AppDomain.Load () to load the assembly.
876 2002-04-26 Martin Baulig <martin@gnome.org>
878 * gdb-csharp-support.patch: A patch for GDB (against the latest CVS version)
879 to implement C# support.
881 * csharp-lang.c, csharp-lang.h, csharp-mono-lang.c: Copy these into your GDB
882 source directory after applying the patch.
884 2002-04-26 Martin Baulig <martin@gnome.org>
886 * MonoDwarfFileWriter.cs (DieInternalString): Removed.
888 2002-04-25 Martin Baulig <martin@gnome.org>
890 * MonoDwarfFileWriter.cs: Reflect latest MonoString changes.
892 2002-04-13 Martin Baulig <martin@gnome.org>
894 * IMonoSymbolWriter.cs (ISourceBlock): Added `Blocks' property and `AddBlock'
895 method to support nested blocks.
897 * MonoSymbolWriter.cs: Correctly handle nested blocks.
899 * MonoDwarfFileWriter.cs (DieMember): Provide info for all fields, not just for
900 public ones; also added DW_AT_accessibility.
901 (DieVariable): Reflected latest debug-symfile.c changes.
903 2002-04-12 Martin Baulig <martin@gnome.org>
905 * gdb-variable-scopes.patch: A patch for GDB (against the latest CVS version)
906 to implement variable lifetimes.
908 2002-04-12 Martin Baulig <martin@gnome.org>
910 * MonoDwarfFileWriter.cs (DieVariable): Provide info about the variable's
911 lifetime using DW_AT_begin_scope and a new baulig extension DW_AT_end_scope.
913 2002-03-29 Martin Baulig <martin@gnome.org>
915 * AssemblerWriterI386.cs: Rewrote most of the string output function, do the
916 number->string conversion manually. It's now taking about 15 seconds to write
917 a symbol file for MCS, no longer more than a minute.
919 * MonoDwarfFileWriter.cs: Added some profiling code, speeded things up, fixed
922 2002-03-25 Martin Baulig <martin@gnome.org>
924 * MonoDwarfFileWriter.cs (CreateType): Return a `DieType'.
925 (RegisterType): Add the type to the type hash before creating dependency types
926 so we don't get recursion loops.
927 (RegisterPointerType): New func to register a "pointer to type" type.
928 (DieTypeDef, DiePointerType, DieArrayType, DieStringType, DieClassType): New
929 types; added support for strings, arrays and basic support for classes.
931 2002-03-24 Martin Baulig <martin@gnome.org>
933 * IMonoSymbolWriter.cs: Killed all methods in this interface, no longer needed.
935 * MonoSymbolWriter.cs (MonoSymbolWriter): The constructor now takes a string
936 argument which is the full pathname of the assembly - you must call Close()
937 after the assembly has been written to disk since the symbol writer needs to
938 load the finished assembly to get its metadata.
940 * MonoDwarfFileWriter.cs: Added support for enums and structs.
942 2002-03-24 Martin Baulig <martin@gnome.org>
944 * MonoDwarfFileWriter.cs: Added support for method parameters.
946 2002-03-24 Martin Baulig <martin@gnome.org>
948 * IMonoSymbolWriter.cs (IMonoSymbolWriter): Removed my custom OpenMethod(),
949 we're now using the ISymbolWriter's method.
950 (IVariable): Added `byte[] Signature' property.
952 * MonoSymbolWriter.cs (SetAssembly): New method. This must be called before
953 Close(); the assembly parameter is the already-written assembly, ie. it must
954 contain the full metadata.
955 (OpenMethod): Only take the token argument and set MethodInfo later in DoFixups.
956 (SetMethodSourceRange): You must call this function to tell the symbol writer
957 in which source file the method is defined.
958 (DefineLocal): Store the signature in the local.
959 (DoFixups): Use two new interncalls to set the SourceMethod's MethodInfo field
960 and the LocalVariable's Type field.
962 2002-03-23 Martin Baulig <martin@gnome.org>
964 * IMonoSymbolWriter.cs (ISourceBlock): New interface.
965 (ILocalVariable): Renamed this interface to IVariable.
966 (IVariable): Added Line, Type, Token.
967 (ILocalVariable, IMethodParameter): New interfaces, derive from IVariable.
968 (ISourceMethod): Added Blocks. Renamed FirstLine and LastLine to Start and End,
969 changed their type to ISourceLine. Removed CodeSize.
970 (ISourceLine): Renamed Line to Row, added Column. Added OffsetType and Offset.
972 * MonoDwarfFileWriter.cs (MonoDwarfFileWriter.DieLexicalBlock): New class.
973 (MonoDwarfFileWriter.DieMethodVariable): New class.
975 * MonoSymbolWriter.cs (OpenScope, CloseScope): Implemented.
976 Reflected latest IMonoSymbolWriter interface changes.
978 2002-03-20 Martin Baulig <martin@gnome.org>
980 * IAssemblerWriter.cs: New interface.
982 * AssemblerWriterI386.cs: New class.
984 * MonoDwarfFileWriter.cs: Use the IAssemblerWriter interface to make this class
985 platform and assembler independent.
987 2002-03-20 Martin Baulig <martin@gnome.org>
989 * IMonoSymbolWriter.cs (ISourceMethod): Added FirstLine, LastLine, CodeSize and
992 * MonoDwarfFileWriter.cs: Implemented line number support.
994 2002-03-19 Martin Baulig <martin@gnome.org>
996 * IMonoSymbolWriter.cs (ISourceFile, ISourceMethod, ISourceLine, ILocalVariable):
999 * IMonoSymbolWriter.cs (OpenMethod): Take a System.Reflection.MethodInfo, not
1002 2002-03-19 Martin Baulig <martin@gnome.org>
1004 This is an implementation of the System.Diagnostics.SymbolStore.SymbolWriter
1005 interface. It's still work in progress and not yet used anywhere.
1007 There is some preliminary documentation in the source files and some more
1008 docu in the README and README.relocation-table files.
1010 * IMonoSymbolWriter.cs: New file.
1011 * MonoDwarfFileWriter.cs: New file.
1012 * MonoSymbolDocumentWriter.cs: New file.
1013 * MonoSymbolWriter.cs: New file.
1015 * README, README.relocation-table: Documentation.