2003-02-07 Martin Baulig <martin@ximian.com>
[mono.git] / mcs / class / Mono.CSharp.Debugger / ChangeLog
1 2003-02-07  Martin Baulig  <martin@ximian.com>
2
3         * MonoSymbolWriter.cs (MonoSymbolWriter.Initialize): Removed the
4         custom initialization function.
5
6         * MonoSymbolTableWriter.cs: Removed; the code is now in
7         MonoSymbolFile.cs and MonoSymbolWriter.cs.
8
9 2003-02-07  Martin Baulig  <martin@ximian.com>
10
11         * MonoSymbolFile.cs: The symbol file is now a resource in the
12         assembly instead of a separate file.
13
14         * MonoSymbolTable.cs: Did a few more cleanups, sort the line
15         number table and remove duplicate line numbers.
16
17 2003-02-05  Martin Baulig  <martin@ximian.com>
18
19         Modified the symbol file format to speed up method looks by name
20         and cleaned this up a lot.
21
22         * MonoSymbolFile.cs: New public class.  This is now a public class
23         and writes and reads the symbol file.
24
25         * IMonoBinaryReader.cs: Removed.
26
27         * MonoSymbolTable.cs: Set version number to 29.
28
29 2003-01-17  Zoltan Varga  <vargaz@freemail.hu>
30
31         * MonoSymbolWriter.cs (OpenMethod): Make it work on constructors.
32
33 2002-10-13  Martin Baulig  <martin@gnome.org>
34
35         * MonoSymbolTable.cs: Set version number to 28.
36         (SourceFileEntry): Read the methods when they're needed.
37         (MethodSourceEntry): Made this a struct, not a class.
38
39 2002-10-13  Martin Baulig  <martin@gnome.org>
40
41         * MonoSymbolTable.cs: Set version number to 27.  Added a source
42         file table which is used to search a method by source file + line number.
43
44 2002-09-21  Martin Baulig  <martin@gnome.org>
45
46         * MonoSymbolTable.cs: Set version number to 26.  Removed all the dynamic
47         stuff, this library now just deals with the compiler generated symbol table.
48         The dynamic stuff is private between the JIT and the debugger.
49
50 2002-09-21  Martin Baulig  <martin@gnome.org>
51
52         * MonoSymbolTable.cs: Set version number to 25.  Added information about
53         local variables.
54
55 2002-09-20  Martin Baulig  <martin@gnome.org>
56
57         * MonoSymbolTable.cs: Set version number to 24.  Added a type index
58         table.  Write the type of a local variable or a parameter as an index
59         into this table.
60
61 2002-09-20  Martin Baulig  <martin@gnome.org>
62
63         * IMonoSymbolWriter.cs: Remove all the unused interfaces.
64
65 2002-09-20  Martin Baulig  <martin@gnome.org>
66
67         * MonoSymbolTable.cs: Set version number to 23, include the size
68         of a variable.
69
70 2002-09-20  Martin Baulig  <martin@gnome.org>
71
72         * MonoSymbolTable.cs: Set version number to 22.  Provide information
73         about parameters and local variables.
74
75 2002-09-20  Martin Baulig  <martin@gnome.org>
76
77         * IMonoSymbolWriter.cs: Use fullly qualified name for
78         System.Diagnostics.SymbolStore.ISymbolWriter rather than `using' this
79         namespace.  This allows us to use the name `ISymbolWriter' in our own
80         code.
81
82 2002-09-18  Martin Baulig  <martin@gnome.org>
83
84         * MonoSymbolTable.cs: Set version number to 21.  Encode the source file
85         as a 4-byte length field followed by the UTF8 encoded string.
86
87 2002-09-18  Martin Baulig  <martin@gnome.org>
88
89         * IMonoBinaryReader.cs: New interface.
90
91         * MonoSymbolTable.cs: Use IMonoBinaryReader instead of binary reader.
92
93 2002-09-16  Martin Baulig  <martin@gnome.org>
94
95         * MonoSymbolTable.cs: Set version number to 20.
96
97 2002-09-14  Martin Baulig  <martin@gnome.org>
98
99         * MonoSymbolWriter.cs, IMonoSymbolWriter.cs, MonoSymbolTableWriter.cs:
100         Make all classes and interfaces which don't need to be public internal.
101
102 2002-09-14  Martin Baulig  <martin@gnome.org>
103
104         * MonoSymbolTable.cs: Use only CLS-compliant types here, bumped version
105         number to 19.
106
107         * MonoSymbolTableReader.cs: Removed, this is now in the debugger.
108
109 2002-09-03  Martin Baulig  <martin@gnome.org>
110
111         * AssemblerWriterI386.cs, IAssemblerWriter.cs, MonoDwarfFileWriter.cs,
112         README, README.relocation-table, csharp-lang.[ch], gdb-csharp-support.patch,
113         gdb-variable-scopes.patch: Removed.
114
115 2002-09-03  Martin Baulig  <martin@gnome.org>
116
117         * MonoSymbolTableReader.cs (MonoSymbolTableReader.ImageFile): New
118         public property.
119
120         * MonoSymbolTable.cs: Bumped version number to 18.
121
122 2002-08-27  Martin Baulig  <martin@gnome.org>
123
124         * MonoSymbolTable.cs (MethodAddress): Removed `TrampolineAddress'.
125
126 2002-08-27  Martin Baulig  <martin@gnome.org>
127
128         * MonoSymbolTable.cs: Changed the file format in a way that allows us
129         open it read-only and to use a specially malloced area for all the
130         dynamic data.   
131
132 2002-08-25  Martin Baulig  <martin@gnome.org>
133
134         * MonoSymbolTableReader.cs: New file.  This is the reader for the
135         new symbol file format.
136
137 2002-08-24  Martin Baulig  <martin@gnome.org>
138
139         * MonoSymbolTable.cs, MonoSymbolTableWriter.cs: New files.  This
140         creates a binary application.dbg file which will be used by the
141         JIT to display source lines for exceptions.
142
143         * list.unix: Disabled the dwarf file writer in the build.
144
145 2002-08-23  Martin Baulig  <martin@gnome.org>
146
147         * MonoSymbolWriter.cs (MonoSymbolWriter.Initialize): Added
148         assembly name argument.  Since the symbol writer needs to read the
149         final assembly, we need to give it its full pathname.
150
151 2002-08-23  Martin Baulig  <martin@gnome.org>
152
153         * makefile.gnu, list.unix: Added.
154
155 2002-07-05  Martin Baulig  <martin@gnome.org>
156
157         * MonoDwarfFileWriter.cs: Added support for types in referenced assemblies.
158
159 2002-07-05  Martin Baulig  <martin@gnome.org>
160
161         * MonoDwarfFileWriter.cs: Added support for arrays.
162
163         * gdb-csharp-support.patch: Updated.
164
165 2002-06-29  Martin Baulig  <martin@gnome.org>
166
167         * MonoDwarfFileWriter.cs (DieInheritance): Make this actually work.
168
169 2002-06-29  Martin Baulig  <martin@gnome.org>
170
171         * MonoDwarfFileWriter.cs, MonoSymbolWriter.cs: Put all TAG_subprogram's into their
172         corresponding struct/class declarations.
173
174 2002-06-28  Martin Baulig  <martin@gnome.org>
175
176         * gdb-csharp-support.patch: Updated.
177
178 2002-06-28  Martin Baulig  <martin@gnome.org>
179
180         * MonoDwarfFileWriter.cs: Use a TAG_string_type when we're using GNU extensions.
181         Make static struct/class fields actually work.  Provide a TAG_typedef for struct's
182         and classes.
183
184 2002-05-30  Martin Baulig  <martin@gnome.org>
185
186         * IMonoSymbolWriter (IMonoSymbolWriter): Added custom `Initialize' method.
187
188         * MonoSymbolWriter.cs (Initialize): The ISymbolWriter's `Initialize' method
189         is no longer supported and throws an exception.
190         (Initialize (string, string[])): New custom initialization function.
191
192         * MonoDwarfFileWriter.cs (DwarfFileWriter): Added `string[] args' argument
193         to the constructor to pass command line arguments.
194
195         * gdb-csharp-support.patch: Updated for GDB 5.2.
196
197 2002-05-30  Martin Baulig  <martin@gnome.org>
198
199         * MonoSymbolWriter.cs (MonoSymbolWriter): The constructor now get's the
200         AssemblyBuilder's `methods' array as third argument.
201         (OpenMethod): Use this array to get the method builder rather than using an
202         interncall for it.
203         (get_method_builder): Removed this interncall.
204
205 2002-05-25  Martin Baulig  <martin@gnome.org>
206
207         * MonoDwarfFileWriter.cs: Finished the type rewrite, put back strings and arrays.
208
209 2002-05-24  Martin Baulig  <martin@gnome.org>
210
211         * IMonoSymbolWriter.cs (ISourceMethod): Added `FullName' and `Parameters'.
212         (ITypeHandle): New interface.
213
214         * DwarfFileWriter.cs: Largely reorganized the type writing code.  Types are
215         now represented by ITypeHandle objects which are stored in a per-dwarf-writer
216         hash table.  At the moment, all types still need to be in one compile unit due
217         to lacking support in gdb - but this new type code here already supports this.
218
219         * MonoSymbolWriter.cs: Moved all the subclasses to the top-level and made them
220         public, cleaned up the code, put everything into one compile unit.
221         (DefineLocalVariable): Added a version of this function which takes useful args.
222
223 2002-05-22  Martin Baulig  <martin@gnome.org>
224
225         * IMonoSymbolWriter.cs (IMonoSymbolWriter): Added `Sources' and `Methods'
226         properties.
227
228         * MonoDwarfFileWriter.cs (WriteSymbolTable): New public method.  Moved the
229         code that writes the "mono_line_numbers" section here from the LineNumberEngine.
230
231 2002-05-22  Martin Baulig  <martin@gnome.org>
232
233         * IMonoSymbolWriter.cs (IVariable): Replaced Token with `ISourceMethod Method'.
234
235         * MonoSymbolWriter.cs (MonoSymbolWriter): The constructor now has an additional
236         ModuleBuilder argument.
237         (OpenMethod): Immediately call the `get_method' interncall to get the MethodBase
238         from the token, then store the MethodBase instead of the token.  The token may
239         still change during the metadata library's fixup process.
240         (DoFixups): When the image has been written to disk, call the GetToken () method
241         on all MethodBuilders and all ConstructorBuilders to get the final metadata tokens.
242
243 2002-05-22  Martin Baulig  <martin@gnome.org>
244
245         * AssemblerWriterI386.cs: Don't use GNU extensions and produce assembler
246         output which is free of comments and extra whitespaces so that it's suitable
247         for `as -f'.
248
249 2002-05-22  Martin Baulig  <martin@gnome.org>
250
251         * IMonoSymbolWriter.cs (ISourceMethod): Replaced `MethodInfo MethodInfo' with
252         `MethodBase MethodBase' and added `Type ReturnType'.  We're now correctly
253         dealing with constructors and not crashing anymore.
254
255 2002-05-21  Martin Baulig  <martin@gnome.org>
256
257         * MonoDwarfFileWriter.cs: Write a special line number table which can be read
258         in by the metadata library to get line number information in backtraces.
259
260 2002-05-06  Martin Baulig  <martin@gnome.org>
261
262         * MonoSymbolWriter.cs (MonoSymbolWriter.Close): Use Assembly.LoadFrom (), not
263         AppDomain.Load () to load the assembly.
264
265 2002-04-26  Martin Baulig  <martin@gnome.org>
266
267         * gdb-csharp-support.patch: A patch for GDB (against the latest CVS version)
268         to implement C# support.
269
270         * csharp-lang.c, csharp-lang.h, csharp-mono-lang.c: Copy these into your GDB
271         source directory after applying the patch.
272
273 2002-04-26  Martin Baulig  <martin@gnome.org>
274
275         * MonoDwarfFileWriter.cs (DieInternalString): Removed.
276
277 2002-04-25  Martin Baulig  <martin@gnome.org>
278
279         * MonoDwarfFileWriter.cs: Reflect latest MonoString changes.
280
281 2002-04-13  Martin Baulig  <martin@gnome.org>
282
283         * IMonoSymbolWriter.cs (ISourceBlock): Added `Blocks' property and `AddBlock'
284         method to support nested blocks.
285
286         * MonoSymbolWriter.cs: Correctly handle nested blocks.
287
288         * MonoDwarfFileWriter.cs (DieMember): Provide info for all fields, not just for
289         public ones; also added DW_AT_accessibility.
290         (DieVariable): Reflected latest debug-symfile.c changes.
291
292 2002-04-12  Martin Baulig  <martin@gnome.org>
293
294         * gdb-variable-scopes.patch: A patch for GDB (against the latest CVS version)
295         to implement variable lifetimes.
296
297 2002-04-12  Martin Baulig  <martin@gnome.org>
298
299         * MonoDwarfFileWriter.cs (DieVariable): Provide info about the variable's
300         lifetime using DW_AT_begin_scope and a new baulig extension DW_AT_end_scope.
301
302 2002-03-29  Martin Baulig  <martin@gnome.org>
303
304         * AssemblerWriterI386.cs: Rewrote most of the string output function, do the
305         number->string conversion manually. It's now taking about 15 seconds to write
306         a symbol file for MCS, no longer more than a minute.
307
308         * MonoDwarfFileWriter.cs: Added some profiling code, speeded things up, fixed
309         a few bugs.
310
311 2002-03-25  Martin Baulig  <martin@gnome.org>
312
313         * MonoDwarfFileWriter.cs (CreateType): Return a `DieType'.
314         (RegisterType): Add the type to the type hash before creating dependency types
315         so we don't get recursion loops.
316         (RegisterPointerType): New func to register a "pointer to type" type.
317         (DieTypeDef, DiePointerType, DieArrayType, DieStringType, DieClassType): New
318         types; added support for strings, arrays and basic support for classes.
319         
320 2002-03-24  Martin Baulig  <martin@gnome.org>
321
322         * IMonoSymbolWriter.cs: Killed all methods in this interface, no longer needed.
323
324         * MonoSymbolWriter.cs (MonoSymbolWriter): The constructor now takes a string
325         argument which is the full pathname of the assembly - you must call Close()
326         after the assembly has been written to disk since the symbol writer needs to
327         load the finished assembly to get its metadata.
328
329         * MonoDwarfFileWriter.cs: Added support for enums and structs.
330         
331 2002-03-24  Martin Baulig  <martin@gnome.org>
332
333         * MonoDwarfFileWriter.cs: Added support for method parameters.
334
335 2002-03-24  Martin Baulig  <martin@gnome.org>
336
337         * IMonoSymbolWriter.cs (IMonoSymbolWriter): Removed my custom OpenMethod(),
338         we're now using the ISymbolWriter's method.
339         (IVariable): Added `byte[] Signature' property.
340
341         * MonoSymbolWriter.cs (SetAssembly): New method. This must be called before
342         Close(); the assembly parameter is the already-written assembly, ie. it must
343         contain the full metadata.
344         (OpenMethod): Only take the token argument and set MethodInfo later in DoFixups.
345         (SetMethodSourceRange): You must call this function to tell the symbol writer
346         in which source file the method is defined.
347         (DefineLocal): Store the signature in the local.
348         (DoFixups): Use two new interncalls to set the SourceMethod's MethodInfo field
349         and the LocalVariable's Type field.
350
351 2002-03-23  Martin Baulig  <martin@gnome.org>
352
353         * IMonoSymbolWriter.cs (ISourceBlock): New interface.
354         (ILocalVariable): Renamed this interface to IVariable.
355         (IVariable): Added Line, Type, Token.
356         (ILocalVariable, IMethodParameter): New interfaces, derive from IVariable.
357         (ISourceMethod): Added Blocks. Renamed FirstLine and LastLine to Start and End,
358         changed their type to ISourceLine. Removed CodeSize.
359         (ISourceLine): Renamed Line to Row, added Column. Added OffsetType and Offset.
360
361         * MonoDwarfFileWriter.cs (MonoDwarfFileWriter.DieLexicalBlock): New class.
362         (MonoDwarfFileWriter.DieMethodVariable): New class.
363
364         * MonoSymbolWriter.cs (OpenScope, CloseScope): Implemented.
365         Reflected latest IMonoSymbolWriter interface changes.
366
367 2002-03-20  Martin Baulig  <martin@gnome.org>
368
369         * IAssemblerWriter.cs: New interface.
370
371         * AssemblerWriterI386.cs: New class.
372
373         * MonoDwarfFileWriter.cs: Use the IAssemblerWriter interface to make this class
374         platform and assembler independent.
375
376 2002-03-20  Martin Baulig  <martin@gnome.org>
377
378         * IMonoSymbolWriter.cs (ISourceMethod): Added FirstLine, LastLine, CodeSize and
379         Token properties.
380
381         * MonoDwarfFileWriter.cs: Implemented line number support.
382
383 2002-03-19  Martin Baulig  <martin@gnome.org>
384
385         * IMonoSymbolWriter.cs (ISourceFile, ISourceMethod, ISourceLine, ILocalVariable):
386         New interfaces.
387
388         * IMonoSymbolWriter.cs (OpenMethod): Take a System.Reflection.MethodInfo, not
389         a string.
390
391 2002-03-19  Martin Baulig  <martin@gnome.org>
392
393         This is an implementation of the System.Diagnostics.SymbolStore.SymbolWriter
394         interface. It's still work in progress and not yet used anywhere.
395
396         There is some preliminary documentation in the source files and some more
397         docu in the README and README.relocation-table files.
398
399         * IMonoSymbolWriter.cs: New file.
400         * MonoDwarfFileWriter.cs: New file.
401         * MonoSymbolDocumentWriter.cs: New file.
402         * MonoSymbolWriter.cs: New file.
403
404         * README, README.relocation-table: Documentation.
405