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