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