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