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