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