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