svn path=/branches/mono-1-1-9/mono/; revision=51217
[mono.git] / mcs / class / Mono.CompilerServices.SymbolWriter / ChangeLog
1 2005-09-05  Martin Baulig  <martin@ximian.com>
2
3         * MonoSymbolFile.cs (MonoDebuggerSupport): Make this internal and
4         move everything we don't need here into the debugger.
5
6 2005-06-20  Chris Toshok  <toshok@ximian.com>
7
8         * MonoSymbolFile.cs (MonoSymbolFile.Dispose): make public.
9
10 2005-05-25  Lluis Sanchez Gual  <lluis@novell.com>
11
12         * SymbolWriterImpl.cs: An implementation of ISymbolWriter. It is just a
13         wrapper for the MonoSymbolWriter class that mcs is using.
14
15 2005-04-04  Marek Safar  <marek.safar@seznam.cz>
16
17         * MonoSymbolFile.cs: Removed unused fields.
18 \r
19 2005-02-10  Martin Baulig  <martin@ximian.com>
20
21         * MonoSymbolFile.cs
22         (MonoDebuggerSupport.MakeArrayType): New public method.
23         (MonoDebuggerSupport.ResolveType): New public method.
24         (MonoDebuggerSupport.GetTypeToken): New public method.
25
26 2005-02-10  Martin Baulig  <martin@ximian.com>
27
28         * MonoSymbolFile.cs (MonoDebuggerSupport.GetMethodIndex): New
29         public method.
30
31 2004-11-23  Ben Maurer  <bmaurer@ximian.com>
32
33         * MonoSymbolFile.cs (CreateSymbolFile): Take a filestream to
34         write to. Do not return a byte array.
35
36         (MyMemoryStream): Unused now.
37
38         * MonoSymbolWriter.cs: Take advantage of the api change above.
39
40         Overall, this prevents us from having to allocate the debug file
41         in ram. For corlib, the debug file is about 1.5 mb. So it takes up
42         over 3 mb (you must write it in chunks then get the big array)
43
44         With the file stream, it takes up 4 kb or so for the buffer.
45
46 2004-10-20  Martin Baulig  <martin@ximian.com>
47
48         * MonoSymbolFile.cs (MonoSymbolFile.Write): Sort the method table
49         before actually writing it to disk and update MethodEntry.Index.
50
51         * MonoSymbolTable.cs (MethodEntry.Index): Make this a writable
52         property; set it after creating all the methods and sorting the
53         method table.
54
55 2004-09-21  Martin Baulig  <martin@ximian.com>
56
57         * MonoSymbolFile.cs (MonoDebuggerSupport.CheckRuntimeVersion): New
58         public method.
59
60 2004-08-27  Martin Baulig  <martin@ximian.com>
61
62         * MonoSymbolFile.cs (MonoSymbolFile..ctor): Read the GUID from the
63         symbol file before reading the OffsetTable.
64
65 2004-08-27  Chris Toshok  <toshok@ximian.com>
66
67         * MonoSymbolFile.cs (MonoSymbolFile.ReadSymbolFile): pass name to
68         MonoSymbolFile.ctor, not filename, so we load the .mdb file
69         instead of the .dll.
70         (MonoSymbolFile.ctor): pass FileAccess.Read to the FileStream
71         ctor.
72
73 2004-08-27  Martin Baulig  <martin@ximian.com>
74
75         * MonoSymbolFile.cs (MonoDebuggerSupport.GetGuid): The function is
76         called Module.Mono_GetGuid(), not Module.MonoDebugger_GetGuid().
77
78 2004-07-30  Martin Baulig  <martin@ximian.com>
79
80         The library is now called Mono.CompilerServices.SymbolWriter.dll
81         and is in the Mono.CompilerServices.SymbolWriter namespace.
82
83         * MonoSymbolFile.cs (MonoDebuggerSupport.GetGuid): New public
84         static method.
85         (MonoSymbolFile.WriteString): Use the BinaryWriter's method.
86         (MonoSymbolFile.ReadString): Use the BinaryReader's method.
87         (MonoSymbolFile.Write): Write the module's Guid into the symbol
88         file.
89
90         * MonoSymbolTable.cs, MonoSymbolWriter.cs: Reworked the API.
91
92 2004-07-27  Martin Baulig  <martin@ximian.com>
93
94         * MonoSymbolFile.cs (MonoSymbolFile.Write): Sort the methods
95         according to their token values.
96         (MonoSymbolFile.ReadSymbolFile): Support reading the debugging
97         information from an external ".mdb" file.
98
99         * MonoSymbolTable.cs
100         (SourceFileEntry): Make the .ctor protected, not internal.
101         (SourceFileEntry.DefineMethod): This is no longer specific to
102         System.Reflection(.Emit).
103         (MethodEntry): We don't need the class and parameter types, the
104         JIT is already getting this information automatically.
105         (MethodEntry.ClassTypeIndex): Make this obsolete.
106         (MethodEntry.ParamTypeIndicies): Likewise.
107
108 2004-07-02  Raja R Harinath  <rharinath@novell.com>
109
110         * Makefile (LIBRARY_USE_INTERMEDIATE_FILE): Define.
111         (LIBRARY_COMPILE): Simplify.
112
113 2004-06-24  Raja R Harinath  <rharinath@novell.com>
114
115         * Makefile (LIBRARY_COMPILE): Only define for W32.
116
117 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
118
119         * Makefile: build using mcs on windows.
120
121 2004-06-19  Martin Baulig  <martin@ximian.com>
122
123         * MonoSymbolTable.cs
124         (SourceFileTable.Namespaces): New public property.
125
126 2004-06-02  Martin Baulig  <martin@ximian.com>
127
128         Set version number to 37.
129
130 2004-05-23 Ben Maurer  <bmaurer@users.sourceforge.net>
131
132         * MonoSymbolTable.cs (BuildLineNumberTable): Avoid arraylist.
133
134 2004-01-16  Martin Baulig  <martin@ximian.com>
135
136         Set version number to 36.
137
138         * MonoSymbolFile.cs (MonoSymbolFile): Removed 'FindMethod' and
139         'MethodLookup'.
140
141         * MonoSymbolTable.cs (MethodEntry): Don't write the method's full
142         name into the symbol file.
143
144 2004-01-16  Martin Baulig  <martin@ximian.com>
145
146         * MonoSymbolFile.cs (MonoDebuggerSupport): As suggested by Ben
147         Maurer, create a delegate type for each of the methods and then
148         store the method.
149
150 2004-01-15  Martin Baulig  <martin@ximian.com>
151
152         * MonoSymbolFile.cs (MonoDebuggerSupport): New public class
153         containing static wrappers for calling the `MonoDebugger_*'
154         function in S.R.Assembly.
155
156 2004-01-13  Martin Baulig  <martin@ximian.com>
157
158         * MonoSymbolTable.cs: Added more #region's and a comment at the
159         top of the file.
160
161         * MonoSymbolWriter.cs (SourceMethod.BuildLineNumberTable): Removed
162         it here since it's in MethodEntry again.
163
164 2004-01-13  Martin Baulig  <martin@ximian.com>
165
166         * ChangeLog, MonoSymbolTable.cs: Reviewed Ben's patches.  For
167         those which are not ok, I'll add detailed comments to the source
168         code.   
169
170 2003-12-28 Ben Maurer  <bmaurer@users.sourceforge.net>
171
172         [Revision 1.41, not approved.  Martin]
173         * MonoSymbolTable.cs (MethodEntry): kill more
174         useless fields.
175
176 2003-12-28 Ben Maurer  <bmaurer@users.sourceforge.net>
177
178         [Revision 1.40, not approved.  Martin]
179         * MonoSymbolTable.cs (MethodEntry): Remove the
180         SourceFileIndex field, we already have the info.
181
182 2003-12-28 Ben Maurer  <bmaurer@users.sourceforge.net>
183
184         [Revision 1.39, approved.  Martin]
185         * MonoSymbolTable.cs: Don't make the MethodIndexEntry
186         part of the method entry class, because it just
187         takes up extra space.
188
189 2003-12-28 Ben Maurer  <bmaurer@users.sourceforge.net>
190
191         [Revisions 1.37 and 1.38; not approved.  Martin]
192         * MonoSymbolTable.cs (MethodEntry.BuildLineNumberTable): Removed.
193
194         * MonoSymbolTable.cs, MonoSymbolWriter.cs: Use
195         fewer arrays, dont use arraylists with structs.
196
197 2003-12-27 Ben Maurer  <bmaurer@users.sourceforge.net>
198
199         * MonoSymbolFile.cs: Much, much better string writing.
200
201 2003-12-20 Ben Maurer  <bmaurer@users.sourceforge.net>
202
203         [Revision 1.36, approved.  Martin]
204         * MonoSymbolTable.cs: Fewer StringBuilder allocs.
205
206 2003-12-08  Zoltan Varga  <vargaz@freemail.hu>
207
208         * MonoSymbolWriter.cs: Create ArrayLists only when needed.
209
210 2003-12-07 Ben Maurer  <bmaurer@users.sourceforge.net>
211
212         [Revision 1.35, approved.  Martin]
213         * MonoSymbolTable.cs: It is faster to do a linear search
214         than it is to make a hashtable. Even though the linear
215         search is O(n^2) while the hashtable is O(n), the allocation
216         cost for a hashtable is *very* high, especially when only
217         a few members will be added.
218
219 2003-09-06  Martin Baulig  <martin@ximian.com>
220
221         * MonoSymbolFile.cs: Removed debugging output.
222
223 2003-08-05  Martin Baulig  <martin@ximian.com>
224
225         * MonoSymbolTable.cs (MethodEntry.Index): New public field.
226
227 2003-06-27  Zoltan Varga  <vargaz@freemail.hu>
228
229         * MonoSymbolWriter.cs: Enable calling of DefineDocument multiple
230         times with the same URL.
231
232 2003-06-10  Zoltan Varga  <vargaz@freemail.hu>
233
234         * MonoSymbolFile.cs: Fix off-by-one error.
235
236 2003-03-22  Martin Baulig  <martin@ximian.com>
237
238         * MonoSymbolTable.cs (MethodEntry.LocalNamesAmbiguous): New public
239         field.  Specifies whether two local variables have the same name.
240
241 2003-03-13  Martin Baulig  <martin@ximian.com>
242
243         Added basic support for lexical scopes.  This is just to tell a
244         debugger that a local variable is only available in a specific
245         lexical scope and that another variable of the same name may exist
246         in another lexical scope.  See debugger/test/TestLexicalScope.cs
247         for examples.
248
249         * MonoSymbolTable.cs (LexicalScopeEntry): New class.
250         (LocalVariableEntry): Added `BlockIndex' field which specifies the
251         lexical scope of this variable.
252
253         * MonoSymbolWriter.cs (SourceBlock): Removed, we're now using
254         LexicalScopeEntry instead.
255
256 2003-02-22  Martin Baulig  <martin@ximian.com>
257
258         * MonoSymbolTable.cs: Incremented version number.
259
260 2003-02-22  Martin Baulig  <martin@ximian.com>
261
262         * MonoSymbolFile.cs (MonoSymbolFile.FindMethod): Fixed a bug.
263         (MonoSymbolFile.MethodLookup): New method.
264
265 2003-02-18  Martin Baulig  <martin@ximian.com>
266
267         * MonoSymbolFile.cs (MonoSymbolFile.GetMethod): Added overloaded
268         version which takes a MethodBase.
269
270 2003-02-18  Martin Baulig  <martin@ximian.com>
271
272         * MonoSymbolTable.cs (MethodIndexEntry): New public struct.
273
274         * MonoSymbolFile.cs (MonoSymbolFile.GetMethodByToken): New method.
275
276 2003-02-18  Martin Baulig  <martin@ximian.com>
277
278         * MonoSymbolFile.cs (MonoSymbolFile.Assembly): New public property.
279
280         * MonoSymbolTable.cs (MethodEntry.MethodBase): New public property.
281         (MethodEntry.LocalTypes): New public variable.
282
283 2003-02-18  Martin Baulig  <martin@ximian.com>
284
285         * MonoSymbolFile.cs (MethodEntry.ThisTypeIndex): Renamed to
286         ClassTypeIndex; provide this for all methods so we can get the
287         class of static methods.
288
289 2003-02-10  Nick Drochak  <ndrochak@gol.com>
290
291         * Mono.CSharp.Debugger.build: passing the /r using an 'arg' node works.
292         The <include> node wasn't getting to the compiler. This fixes build
293         breakage on cygwin.
294
295         * MonoSymbolFile.cs: Qualify which Min method. Fixes build breakage
296         on cygwin.
297
298 2003-02-09  Martin Baulig  <martin@ximian.com>
299
300         * MonoSymbolWriter.cs (MonoSymbolWriter.ctor): We don't need the
301         `mbuilder_array' anymore.
302
303 2003-02-09  Martin Baulig  <martin@ximian.com>
304
305         * MonoSymbolWriter.cs (SourceFile): Derive from SourceFileEntry.
306         (SourceBlock): We don't need source lines here.
307         (SourceMethod): We're always constructed with source info.
308
309         * MonoSymbolTable.cs: Added support for namespaces.
310         (NamespaceEntry): New struct.
311         (SourceFileEntry.DefineNamespace): New method.
312         (MethodEntry.BuildLineNumberTable): The table is already sorted,
313         so we don't need to do this here.
314
315 2003-02-09  Martin Baulig  <martin@ximian.com>
316
317         * IMonoSymbolWriter.cs: Ooops, I forgot to remove this.
318
319 2003-02-08  Martin Baulig  <martin@ximian.com>
320
321         * MonoSymbolDocumentWriter.cs: Removed.
322
323         * MonoSymbolWriter.cs (SourceFile): Implement ISymbolDocumentWriter.
324
325 2003-02-08  Martin Baulig  <martin@ximian.com>
326
327         * MonoSymbolFile.cs (GetMethodSource): New public method.
328         (FindMethod): Return the correct index.
329
330 2003-02-07  Martin Baulig  <martin@ximian.com>
331
332         * MonoSymbolFile.cs (Methods, Sources): New public properties.
333
334 2003-02-07  Martin Baulig  <martin@ximian.com>
335
336         * MonoSymbolFile.cs (MonoSymbolFile.ReadSymbolFile): New public
337         static method, returns null (without throwing an exception) if the
338         assembly doesn't have any debugging info.
339
340 2003-02-07  Martin Baulig  <martin@ximian.com>
341
342         * MonoSymbolWriter.cs (MonoSymbolWriter.Initialize): Removed the
343         custom initialization function.
344
345         * MonoSymbolTableWriter.cs: Removed; the code is now in
346         MonoSymbolFile.cs and MonoSymbolWriter.cs.
347
348 2003-02-07  Martin Baulig  <martin@ximian.com>
349
350         * MonoSymbolFile.cs: The symbol file is now a resource in the
351         assembly instead of a separate file.
352
353         * MonoSymbolTable.cs: Did a few more cleanups, sort the line
354         number table and remove duplicate line numbers.
355
356 2003-02-05  Martin Baulig  <martin@ximian.com>
357
358         Modified the symbol file format to speed up method looks by name
359         and cleaned this up a lot.
360
361         * MonoSymbolFile.cs: New public class.  This is now a public class
362         and writes and reads the symbol file.
363
364         * IMonoBinaryReader.cs: Removed.
365
366         * MonoSymbolTable.cs: Set version number to 29.
367
368 2003-01-17  Zoltan Varga  <vargaz@freemail.hu>
369
370         * MonoSymbolWriter.cs (OpenMethod): Make it work on constructors.
371
372 2002-10-13  Martin Baulig  <martin@gnome.org>
373
374         * MonoSymbolTable.cs: Set version number to 28.
375         (SourceFileEntry): Read the methods when they're needed.
376         (MethodSourceEntry): Made this a struct, not a class.
377
378 2002-10-13  Martin Baulig  <martin@gnome.org>
379
380         * MonoSymbolTable.cs: Set version number to 27.  Added a source
381         file table which is used to search a method by source file + line number.
382
383 2002-09-21  Martin Baulig  <martin@gnome.org>
384
385         * MonoSymbolTable.cs: Set version number to 26.  Removed all the dynamic
386         stuff, this library now just deals with the compiler generated symbol table.
387         The dynamic stuff is private between the JIT and the debugger.
388
389 2002-09-21  Martin Baulig  <martin@gnome.org>
390
391         * MonoSymbolTable.cs: Set version number to 25.  Added information about
392         local variables.
393
394 2002-09-20  Martin Baulig  <martin@gnome.org>
395
396         * MonoSymbolTable.cs: Set version number to 24.  Added a type index
397         table.  Write the type of a local variable or a parameter as an index
398         into this table.
399
400 2002-09-20  Martin Baulig  <martin@gnome.org>
401
402         * IMonoSymbolWriter.cs: Remove all the unused interfaces.
403
404 2002-09-20  Martin Baulig  <martin@gnome.org>
405
406         * MonoSymbolTable.cs: Set version number to 23, include the size
407         of a variable.
408
409 2002-09-20  Martin Baulig  <martin@gnome.org>
410
411         * MonoSymbolTable.cs: Set version number to 22.  Provide information
412         about parameters and local variables.
413
414 2002-09-20  Martin Baulig  <martin@gnome.org>
415
416         * IMonoSymbolWriter.cs: Use fullly qualified name for
417         System.Diagnostics.SymbolStore.ISymbolWriter rather than `using' this
418         namespace.  This allows us to use the name `ISymbolWriter' in our own
419         code.
420
421 2002-09-18  Martin Baulig  <martin@gnome.org>
422
423         * MonoSymbolTable.cs: Set version number to 21.  Encode the source file
424         as a 4-byte length field followed by the UTF8 encoded string.
425
426 2002-09-18  Martin Baulig  <martin@gnome.org>
427
428         * IMonoBinaryReader.cs: New interface.
429
430         * MonoSymbolTable.cs: Use IMonoBinaryReader instead of binary reader.
431
432 2002-09-16  Martin Baulig  <martin@gnome.org>
433
434         * MonoSymbolTable.cs: Set version number to 20.
435
436 2002-09-14  Martin Baulig  <martin@gnome.org>
437
438         * MonoSymbolWriter.cs, IMonoSymbolWriter.cs, MonoSymbolTableWriter.cs:
439         Make all classes and interfaces which don't need to be public internal.
440
441 2002-09-14  Martin Baulig  <martin@gnome.org>
442
443         * MonoSymbolTable.cs: Use only CLS-compliant types here, bumped version
444         number to 19.
445
446         * MonoSymbolTableReader.cs: Removed, this is now in the debugger.
447
448 2002-09-03  Martin Baulig  <martin@gnome.org>
449
450         * AssemblerWriterI386.cs, IAssemblerWriter.cs, MonoDwarfFileWriter.cs,
451         README, README.relocation-table, csharp-lang.[ch], gdb-csharp-support.patch,
452         gdb-variable-scopes.patch: Removed.
453
454 2002-09-03  Martin Baulig  <martin@gnome.org>
455
456         * MonoSymbolTableReader.cs (MonoSymbolTableReader.ImageFile): New
457         public property.
458
459         * MonoSymbolTable.cs: Bumped version number to 18.
460
461 2002-08-27  Martin Baulig  <martin@gnome.org>
462
463         * MonoSymbolTable.cs (MethodAddress): Removed `TrampolineAddress'.
464
465 2002-08-27  Martin Baulig  <martin@gnome.org>
466
467         * MonoSymbolTable.cs: Changed the file format in a way that allows us
468         open it read-only and to use a specially malloced area for all the
469         dynamic data.   
470
471 2002-08-25  Martin Baulig  <martin@gnome.org>
472
473         * MonoSymbolTableReader.cs: New file.  This is the reader for the
474         new symbol file format.
475
476 2002-08-24  Martin Baulig  <martin@gnome.org>
477
478         * MonoSymbolTable.cs, MonoSymbolTableWriter.cs: New files.  This
479         creates a binary application.dbg file which will be used by the
480         JIT to display source lines for exceptions.
481
482         * list.unix: Disabled the dwarf file writer in the build.
483
484 2002-08-23  Martin Baulig  <martin@gnome.org>
485
486         * MonoSymbolWriter.cs (MonoSymbolWriter.Initialize): Added
487         assembly name argument.  Since the symbol writer needs to read the
488         final assembly, we need to give it its full pathname.
489
490 2002-08-23  Martin Baulig  <martin@gnome.org>
491
492         * makefile.gnu, list.unix: Added.
493
494 2002-07-05  Martin Baulig  <martin@gnome.org>
495
496         * MonoDwarfFileWriter.cs: Added support for types in referenced assemblies.
497
498 2002-07-05  Martin Baulig  <martin@gnome.org>
499
500         * MonoDwarfFileWriter.cs: Added support for arrays.
501
502         * gdb-csharp-support.patch: Updated.
503
504 2002-06-29  Martin Baulig  <martin@gnome.org>
505
506         * MonoDwarfFileWriter.cs (DieInheritance): Make this actually work.
507
508 2002-06-29  Martin Baulig  <martin@gnome.org>
509
510         * MonoDwarfFileWriter.cs, MonoSymbolWriter.cs: Put all TAG_subprogram's into their
511         corresponding struct/class declarations.
512
513 2002-06-28  Martin Baulig  <martin@gnome.org>
514
515         * gdb-csharp-support.patch: Updated.
516
517 2002-06-28  Martin Baulig  <martin@gnome.org>
518
519         * MonoDwarfFileWriter.cs: Use a TAG_string_type when we're using GNU extensions.
520         Make static struct/class fields actually work.  Provide a TAG_typedef for struct's
521         and classes.
522
523 2002-05-30  Martin Baulig  <martin@gnome.org>
524
525         * IMonoSymbolWriter (IMonoSymbolWriter): Added custom `Initialize' method.
526
527         * MonoSymbolWriter.cs (Initialize): The ISymbolWriter's `Initialize' method
528         is no longer supported and throws an exception.
529         (Initialize (string, string[])): New custom initialization function.
530
531         * MonoDwarfFileWriter.cs (DwarfFileWriter): Added `string[] args' argument
532         to the constructor to pass command line arguments.
533
534         * gdb-csharp-support.patch: Updated for GDB 5.2.
535
536 2002-05-30  Martin Baulig  <martin@gnome.org>
537
538         * MonoSymbolWriter.cs (MonoSymbolWriter): The constructor now get's the
539         AssemblyBuilder's `methods' array as third argument.
540         (OpenMethod): Use this array to get the method builder rather than using an
541         interncall for it.
542         (get_method_builder): Removed this interncall.
543
544 2002-05-25  Martin Baulig  <martin@gnome.org>
545
546         * MonoDwarfFileWriter.cs: Finished the type rewrite, put back strings and arrays.
547
548 2002-05-24  Martin Baulig  <martin@gnome.org>
549
550         * IMonoSymbolWriter.cs (ISourceMethod): Added `FullName' and `Parameters'.
551         (ITypeHandle): New interface.
552
553         * DwarfFileWriter.cs: Largely reorganized the type writing code.  Types are
554         now represented by ITypeHandle objects which are stored in a per-dwarf-writer
555         hash table.  At the moment, all types still need to be in one compile unit due
556         to lacking support in gdb - but this new type code here already supports this.
557
558         * MonoSymbolWriter.cs: Moved all the subclasses to the top-level and made them
559         public, cleaned up the code, put everything into one compile unit.
560         (DefineLocalVariable): Added a version of this function which takes useful args.
561
562 2002-05-22  Martin Baulig  <martin@gnome.org>
563
564         * IMonoSymbolWriter.cs (IMonoSymbolWriter): Added `Sources' and `Methods'
565         properties.
566
567         * MonoDwarfFileWriter.cs (WriteSymbolTable): New public method.  Moved the
568         code that writes the "mono_line_numbers" section here from the LineNumberEngine.
569
570 2002-05-22  Martin Baulig  <martin@gnome.org>
571
572         * IMonoSymbolWriter.cs (IVariable): Replaced Token with `ISourceMethod Method'.
573
574         * MonoSymbolWriter.cs (MonoSymbolWriter): The constructor now has an additional
575         ModuleBuilder argument.
576         (OpenMethod): Immediately call the `get_method' interncall to get the MethodBase
577         from the token, then store the MethodBase instead of the token.  The token may
578         still change during the metadata library's fixup process.
579         (DoFixups): When the image has been written to disk, call the GetToken () method
580         on all MethodBuilders and all ConstructorBuilders to get the final metadata tokens.
581
582 2002-05-22  Martin Baulig  <martin@gnome.org>
583
584         * AssemblerWriterI386.cs: Don't use GNU extensions and produce assembler
585         output which is free of comments and extra whitespaces so that it's suitable
586         for `as -f'.
587
588 2002-05-22  Martin Baulig  <martin@gnome.org>
589
590         * IMonoSymbolWriter.cs (ISourceMethod): Replaced `MethodInfo MethodInfo' with
591         `MethodBase MethodBase' and added `Type ReturnType'.  We're now correctly
592         dealing with constructors and not crashing anymore.
593
594 2002-05-21  Martin Baulig  <martin@gnome.org>
595
596         * MonoDwarfFileWriter.cs: Write a special line number table which can be read
597         in by the metadata library to get line number information in backtraces.
598
599 2002-05-06  Martin Baulig  <martin@gnome.org>
600
601         * MonoSymbolWriter.cs (MonoSymbolWriter.Close): Use Assembly.LoadFrom (), not
602         AppDomain.Load () to load the assembly.
603
604 2002-04-26  Martin Baulig  <martin@gnome.org>
605
606         * gdb-csharp-support.patch: A patch for GDB (against the latest CVS version)
607         to implement C# support.
608
609         * csharp-lang.c, csharp-lang.h, csharp-mono-lang.c: Copy these into your GDB
610         source directory after applying the patch.
611
612 2002-04-26  Martin Baulig  <martin@gnome.org>
613
614         * MonoDwarfFileWriter.cs (DieInternalString): Removed.
615
616 2002-04-25  Martin Baulig  <martin@gnome.org>
617
618         * MonoDwarfFileWriter.cs: Reflect latest MonoString changes.
619
620 2002-04-13  Martin Baulig  <martin@gnome.org>
621
622         * IMonoSymbolWriter.cs (ISourceBlock): Added `Blocks' property and `AddBlock'
623         method to support nested blocks.
624
625         * MonoSymbolWriter.cs: Correctly handle nested blocks.
626
627         * MonoDwarfFileWriter.cs (DieMember): Provide info for all fields, not just for
628         public ones; also added DW_AT_accessibility.
629         (DieVariable): Reflected latest debug-symfile.c changes.
630
631 2002-04-12  Martin Baulig  <martin@gnome.org>
632
633         * gdb-variable-scopes.patch: A patch for GDB (against the latest CVS version)
634         to implement variable lifetimes.
635
636 2002-04-12  Martin Baulig  <martin@gnome.org>
637
638         * MonoDwarfFileWriter.cs (DieVariable): Provide info about the variable's
639         lifetime using DW_AT_begin_scope and a new baulig extension DW_AT_end_scope.
640
641 2002-03-29  Martin Baulig  <martin@gnome.org>
642
643         * AssemblerWriterI386.cs: Rewrote most of the string output function, do the
644         number->string conversion manually. It's now taking about 15 seconds to write
645         a symbol file for MCS, no longer more than a minute.
646
647         * MonoDwarfFileWriter.cs: Added some profiling code, speeded things up, fixed
648         a few bugs.
649
650 2002-03-25  Martin Baulig  <martin@gnome.org>
651
652         * MonoDwarfFileWriter.cs (CreateType): Return a `DieType'.
653         (RegisterType): Add the type to the type hash before creating dependency types
654         so we don't get recursion loops.
655         (RegisterPointerType): New func to register a "pointer to type" type.
656         (DieTypeDef, DiePointerType, DieArrayType, DieStringType, DieClassType): New
657         types; added support for strings, arrays and basic support for classes.
658         
659 2002-03-24  Martin Baulig  <martin@gnome.org>
660
661         * IMonoSymbolWriter.cs: Killed all methods in this interface, no longer needed.
662
663         * MonoSymbolWriter.cs (MonoSymbolWriter): The constructor now takes a string
664         argument which is the full pathname of the assembly - you must call Close()
665         after the assembly has been written to disk since the symbol writer needs to
666         load the finished assembly to get its metadata.
667
668         * MonoDwarfFileWriter.cs: Added support for enums and structs.
669         
670 2002-03-24  Martin Baulig  <martin@gnome.org>
671
672         * MonoDwarfFileWriter.cs: Added support for method parameters.
673
674 2002-03-24  Martin Baulig  <martin@gnome.org>
675
676         * IMonoSymbolWriter.cs (IMonoSymbolWriter): Removed my custom OpenMethod(),
677         we're now using the ISymbolWriter's method.
678         (IVariable): Added `byte[] Signature' property.
679
680         * MonoSymbolWriter.cs (SetAssembly): New method. This must be called before
681         Close(); the assembly parameter is the already-written assembly, ie. it must
682         contain the full metadata.
683         (OpenMethod): Only take the token argument and set MethodInfo later in DoFixups.
684         (SetMethodSourceRange): You must call this function to tell the symbol writer
685         in which source file the method is defined.
686         (DefineLocal): Store the signature in the local.
687         (DoFixups): Use two new interncalls to set the SourceMethod's MethodInfo field
688         and the LocalVariable's Type field.
689
690 2002-03-23  Martin Baulig  <martin@gnome.org>
691
692         * IMonoSymbolWriter.cs (ISourceBlock): New interface.
693         (ILocalVariable): Renamed this interface to IVariable.
694         (IVariable): Added Line, Type, Token.
695         (ILocalVariable, IMethodParameter): New interfaces, derive from IVariable.
696         (ISourceMethod): Added Blocks. Renamed FirstLine and LastLine to Start and End,
697         changed their type to ISourceLine. Removed CodeSize.
698         (ISourceLine): Renamed Line to Row, added Column. Added OffsetType and Offset.
699
700         * MonoDwarfFileWriter.cs (MonoDwarfFileWriter.DieLexicalBlock): New class.
701         (MonoDwarfFileWriter.DieMethodVariable): New class.
702
703         * MonoSymbolWriter.cs (OpenScope, CloseScope): Implemented.
704         Reflected latest IMonoSymbolWriter interface changes.
705
706 2002-03-20  Martin Baulig  <martin@gnome.org>
707
708         * IAssemblerWriter.cs: New interface.
709
710         * AssemblerWriterI386.cs: New class.
711
712         * MonoDwarfFileWriter.cs: Use the IAssemblerWriter interface to make this class
713         platform and assembler independent.
714
715 2002-03-20  Martin Baulig  <martin@gnome.org>
716
717         * IMonoSymbolWriter.cs (ISourceMethod): Added FirstLine, LastLine, CodeSize and
718         Token properties.
719
720         * MonoDwarfFileWriter.cs: Implemented line number support.
721
722 2002-03-19  Martin Baulig  <martin@gnome.org>
723
724         * IMonoSymbolWriter.cs (ISourceFile, ISourceMethod, ISourceLine, ILocalVariable):
725         New interfaces.
726
727         * IMonoSymbolWriter.cs (OpenMethod): Take a System.Reflection.MethodInfo, not
728         a string.
729
730 2002-03-19  Martin Baulig  <martin@gnome.org>
731
732         This is an implementation of the System.Diagnostics.SymbolStore.SymbolWriter
733         interface. It's still work in progress and not yet used anywhere.
734
735         There is some preliminary documentation in the source files and some more
736         docu in the README and README.relocation-table files.
737
738         * IMonoSymbolWriter.cs: New file.
739         * MonoDwarfFileWriter.cs: New file.
740         * MonoSymbolDocumentWriter.cs: New file.
741         * MonoSymbolWriter.cs: New file.
742
743         * README, README.relocation-table: Documentation.
744