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