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