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