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