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