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