1 2009-06-18 Massimiliano Mantione <massi@ximian.com>
2 * mono-profiler-logging.c: Removed debugging printf statement.
4 2009-06-18 Massimiliano Mantione <massi@ximian.com>
5 * mono-profiler-logging.c:
6 Added assembly information to classes and wrapper flag to methods.
8 2009-05-25 Massimiliano Mantione <massi@ximian.com>
9 * mono-profiler-logging.c (write_thread_data_block): Only emit initial
10 stack snippet if we are tracking stacks.
12 2009-05-25 Massimiliano Mantione <massi@ximian.com>
13 * mono-profiler-logging.c (setup_user_options): Avoid tracking stacks
14 and emitting allocation caller information if we are already emitting
15 method enter and exit events.
17 2009-04-06 Massimiliano Mantione <massi@ximian.com>
18 * mono-profiler-logging.c: Added monitor contention profiling.
19 - Changed RESERVE_EVENTS to require a call to the new
20 COMMIT_RESERVED_EVENTS macro after we have filled the event slots
21 (this allows to acquire all the event slots atomically).
22 - Created utility function "save_stack_delta".
23 - Created "monitor_event" callback.
24 - renamed "handle_heap_profiling" as "process_gc_event" because it
25 must be used also to help avoid interferences between garbage
26 collections and monitor profiling.
28 2009-03-23 Massimiliano Mantione <massi@ximian.com>
29 * mono-profiler-logging.c: Removed useless "gc-signal" option (the
30 newer "heap=<SIGNAL>" format of the "heap" option does the same thing).
32 2009-03-16 Massimiliano Mantione <massi@ximian.com>
33 * mono-profiler-logging.c: When checking if an elf file is valid,
34 avoid mapping it in memory until we know it's usable (avoids virtual
35 memory fragmentation issues).
37 2009-01-25 Massimiliano Mantione <massi@ximian.com>
38 * mono-profiler-logging.c: Bug fixing.
39 The issue is that while reading /proc/self/maps is can happen that
40 the last regions (typically [vsyscall] and [vsdo]) are reported more
41 than once (or anyway are read more than once, even when usng the plain
42 "read" call with no buffering), and I found no workaround for this.
43 So the code must be careful and throw away the duplicates.
44 - restore_old_regions: work starting from the new regions instead of
46 - sort_regions: introduce a "throw away the duplicates" pass.
47 - fix_region_references: added a pass to make sure that the elf files
48 always reference the new regions and not the old ones.
49 - refresh_memory_regions: call "sort_regions" before
50 "restore_old_regions" so we know we have no duplicates.
52 2009-01-18 Massimiliano Mantione <massi@ximian.com>
53 * mono-profiler-logging.c: Bug fixing.
54 - profiler_executable_memory_region_destroy: fixed a cut&paste mistake
55 causing a double free.
56 - executable_file_open: allow the code to look at all files, and fix
57 building of "files->new_files" list.
58 - executable_file_free: set "file->section_regions" to NULL when
59 freeing it (for safety).
61 2008-12-31 Massimiliano Mantione <massi@ximian.com>
62 * mono-profiler-logging.c: added "save-allocation-caller" option.
64 2008-12-30 Massimiliano Mantione <massi@ximian.com>
65 * mono-profiler-logging.c:
66 - profiler_executable_memory_region_destroy: fixed memory region
68 - executable_file_add_region_reference: likewise.
69 - executable_file_close: likewise.
70 - executable_file_open: fixed file name handling.
71 - parse_map_line: likewise.
72 - scan_process_regions: likewise.
73 - statistical_call_chain: exit loop if the writer thread is busy.
75 2008-12-11 Massimiliano Mantione <massi@ximian.com>
76 * mono-profiler-logging.c:
77 - executable_file_open: Proper remember of already opened files.
78 - ProfilerStatisticalData: use unsigned values so the index never
79 trips over and becomes negative.
80 - statistical_call_chain, statistical_hit: likewise.
82 2008-12-11 Massimiliano Mantione <massi@ximian.com>
83 * mono-profiler-logging.c: Added defaults to command line options.
85 2008-12-01 Massimiliano Mantione <massi@ximian.com>
86 * mono-profiler-logging.c:
87 - ProfilerThreadStack: added "last_written_frame" and "written_frames"
88 fields to keep track of the call stacks actually written, so that we
89 can "replay" the full call stack at the beginning of each event block
90 (which allows the decoder to read blocks in random order and still see
91 all the call stacks correctly).
92 - gc_event: Fixed event creation sequence.
93 - Improved event logging (debugging) code.
95 2008-11-04 Massimiliano Mantione <massi@ximian.com>
96 * mono-profiler-logging.c:
97 Make sure that stack sections can be fully reconstructed even reading
100 2008-10-10 Massimiliano Mantione <massi@ximian.com>
101 * mono-profiler-logging.c:
102 Added "aci" option to emit the object "id" at each allocation.
104 2008-10-10 Massimiliano Mantione <massi@ximian.com>
105 * mono-profiler-logging.c:
106 Added support for handling the stack trace of each allocation event.
107 - MonoProfilerDirectives: added directive to state that allocations
108 have stack traces (not strictly needed, but simplifirs the decoder).
109 - ProfilerEventData: gave one more bit to code (and one less to value).
110 - MonoProfilerEvents: Added "stack section" event to record stack state.
111 - ProfilerThreadStack: added last_saved_top to track what we just saved.
112 - _MonoProfiler::action_flags: Added save_allocation_caller and
113 save_allocation_stack to state what we do for allocations.
114 - All "thread_stack_..." functions: Track last_saved_top.
115 - Added thread_stack_count_unsaved_frames utilty function.
116 - write_directives_block: handle ALLOCATIONS_HAVE_STACK directive.
117 - Added write_stack_section_event function.
118 - write_event: also handle emission of stack sections.
119 - Reworked all the "STORE_EVENT_..." macros to work on arbitrary event
120 slots (needed for stack sections), and as a consequence fixed all the
121 functions that use them.
122 - object_allocated: save "delta" stack section if needed.
123 - setup_user_options: handle new "sas" option.
125 2008-09-08 Massimiliano Mantione <massi@ximian.com>
126 * Makefile.am: Don't build the profilers if DISABLE_PROFILER is set.
128 2008-09-08 Massimiliano Mantione <massi@ximian.com>
129 * mono-profiler-logging.c:
130 - setup_user_options: made so that the user has to explicitly request
131 the "f" mode when the "h" is asked, otherwise the number of snapshot
132 blocks in the file is very confusing.
133 - Added three icalls to control the profiler from the profiled
136 2008-08-28 Zoltan Varga <vargaz@gmail.com>
138 * mono-profiler-logging.c (detect_fast_timer): Add missing return type.
140 2008-08-21 Massimiliano Mantione <massi@ximian.com>
141 * mono-profiler-logging.c: Added support for correct accounting of
142 allocations which happened at JIT time.
144 2008-08-20 Massimiliano Mantione <massi@ximian.com>
145 * mono-profiler-logging.c: Added directives block, and used it to
146 state that "allocation attribution" done using the stack tracking (so
147 that allocation callers are directly written in the log file).
149 2008-07-28 Massimiliano Mantione <massi@ximian.com>
150 * mono-profiler-logging.c: Added stack tracking (even if still unused).
152 2008-07-28 Massimiliano Mantione <massi@ximian.com>
153 * mono-profiler-logging.c: Fix bug 412473:
154 - write_statistical_data_block: check if the current MonoThread still
155 exists, and if not avoid calling mono_jit_info_table_find.
156 - profiler_shutdown: flush everything in the current thread.
158 2008-07-28 Massimiliano Mantione <massi@ximian.com>
159 * mono-profiler-logging.c: Fix the "allocation summaries" feature
160 (I committed it but it never really worked until now).
162 2008-07-04 Massimiliano Mantione <massi@ximian.com>
163 * mono-profiler-logging.c: Emit full type names for loaded classes
164 (patch by Rodrigo Kumpera).
166 2008-07-04 Massimiliano Mantione <massi@ximian.com>
167 * mono-profiler-logging.c: Use the new "runtime initialized" hook.
169 2008-07-04 Massimiliano Mantione <massi@ximian.com>
170 * mono-profiler-logging.c: Fix an embarassingly stupid problem with
173 2008-07-03 Massimiliano Mantione <massi@ximian.com>
174 * mono-profiler-logging.c: Changed the way to wait for the writer
175 thread to avoid passing an invalid handle to pthread_join.
177 2008-06-28 Massimiliano Mantione <massi@ximian.com>
178 * mono-profiler-logging.c: When offloading flushing to the writer
179 thread, first check that it still exists.
181 2008-06-25 Massimiliano Mantione <massi@ximian.com>
182 * mono-profiler-logging.c: Offload more flushing to the writer thread,
183 and fix the shutdown sequence.
185 2008-06-25 Massimiliano Mantione <massi@ximian.com>
186 * mono-profiler-logging.c: Made so that at appdomain unload the
187 buffers are flushed by the profiler worker thread (which we know
188 is registered with the runtime).
190 2008-06-25 Massimiliano Mantione <massi@ximian.com>
191 * mono-profiler-logging.c: Added more logging code.
193 2008-06-25 Massimiliano Mantione <massi@ximian.com>
194 * mono-profiler-logging.c: Record also the domain of each statistical
195 hit, so that mono_jit_info_table_find works properly.
197 2008-06-25 Massimiliano Mantione <massi@ximian.com>
198 * mono-profiler-logging.c: Fixed breakage introduced in r105966
200 2008-06-17 Massimiliano Mantione <massi@ximian.com>
201 * mono-profiler-logging.c: Implemented signal based enable-disable
202 toggling for the statistical and enter-exit events.
204 2008-06-17 Massimiliano Mantione <massi@ximian.com>
205 * mono-profiler-logging.c (write_statistical_hit): Use the proper
206 domain instead of trying to get one.
208 2008-06-16 Massimiliano Mantione <massi@ximian.com>
209 * mono-profiler-logging.c (module_end_load, assembly_end_load):
210 Properly check the return value of "mono_assembly_fill_assembly_name",
211 otherwise "mono_stringify_assembly_name" can crash.
213 2008-06-16 Massimiliano Mantione <massi@ximian.com>
214 * mono-profiler-logging.c: Fix a segfault on shutdown (see Marek's
215 fix for the default profiler in r105466, the problem is the same.
217 2008-06-16 Massimiliano Mantione <massi@ximian.com>
218 * mono-profiler-logging.c: Initial implementation of summary report
219 for allocations at each collection.
221 2008-05-23 Massimiliano Mantione <massi@ximian.com>
222 * mono-profiler-logging.c: Fix warnings x86 and remove debugging code.
224 2008-05-23 Massimiliano Mantione <massi@ximian.com>
225 * mono-profiler-logging.c: Fix the build on x86.
227 2008-05-23 Massimiliano Mantione <massi@ximian.com>
228 * mono-profiler-logging.c: Support call chains (backtrace) in the
231 2008-05-12 Massimiliano Mantione <massi@ximian.com>
232 * mono-profiler-logging.c (handle_heap_profiling): Flush all data
233 buffers, so that objext allocation events are written before the heap
234 description (which contains the "object free" events).
236 2008-05-12 Massimiliano Mantione <massi@ximian.com>
237 * mono-profiler-logging.c: Added support for a global counter of all
238 garbage collections, so that the file decoder can correlate the
241 2008-05-12 Massimiliano Mantione <massi@ximian.com>
242 * mono-profiler-logging.c: Fixed a bug that prevented using rdtsc,
243 and enabled rdtsc by default,adding a command line option to revert
244 to using gettimeofday.
246 2008-05-02 Massimiliano Mantione <massi@ximian.com>
247 * mono-profiler-logging.c: Turned DEBUG_STATISTICAL_PROFILER off...
249 2008-05-02 Massimiliano Mantione <massi@ximian.com>
250 * mono-profiler-logging.c : Rework statistical profiler, adding the
251 ability to scan symbol tables in elf files instead of using dladdr
252 (dladdr skips lots of symbols which this way we get correctly).
254 2008-04-16 Massimiliano Mantione <massi@ximian.com>
255 * mono-profiler-logging.c (gc_event): Fix deadlock condition.
257 2008-04-16 Massimiliano Mantione <massi@ximian.com>
258 * mono-profiler-logging.c (write_current_block): Added an incremental
259 "counter delta" field to the block header, so that each block has a
260 timestamp directly in the header.
261 This will allow tools to know when a block has been emitted without
262 decoding (even without reading) the block contents.
263 So, if the user is only interested in blocks emitted in a certain
264 time interval, the tool can seek into the file instead of reading the
266 Of course this breaks the file format, but at this stage we can still
267 do it, and... better now than later.
269 2008-04-10 Massimiliano Mantione <massi@ximian.com>
270 * mono-profiler-logging.c (profiler_heap_scan): removed debugging code
271 and therefore removed unconditional inclusion of signal.h (it is now
272 included anyway on Unix platforms).
274 2008-04-10 Massimiliano Mantione <massi@ximian.com>
275 * mono-profiler-logging.c: Added possibiliy of requesting heap
276 snapshots with a signal (like heap-shot).
278 2008-04-02 Rodrigo Kumpera <rkumpera@novell.com>
280 * mono-profiler-logging.c: Fix the arm build. G_BREAKPOINT() does
281 a "raise(SIGTRAL)" and in some platforms <signal.h> must be included.
283 2008-03-28 Massimiliano Mantione <massi@ximian.com>
284 * mono-profiler-logging.c: Added option to append a suffix to the
287 2008-03-27 Massimiliano Mantione <massi@ximian.com>
288 * mono-profiler-logging.c: setup_user_options: set default log file
289 name to the name of the executed application.
291 2008-03-26 Massimiliano Mantione <massi@ximian.com>
292 * Makefile.am: enabled the logging profiler on Linux.
294 2008-03-26 Massimiliano Mantione <massi@ximian.com>
295 * mono-profiler-logging.c: Attach and detach the writer thread.
297 2008-03-25 Massimiliano Mantione <massi@ximian.com>
298 * mono-profiler-logging.c: Fixed bug with memory region indexes.
300 2008-03-18 Massimiliano Mantione <massi@ximian.com>
301 * mono-profiler-logging.c:
302 OPEN_FILE(): Fixed file creation.
303 [UN]LOCK_PROFILER(): Removed logging message.
305 2008-03-11 Massimiliano Mantione <massi@ximian.com>
306 * mono-profiler-logging.c: Fixed heap profiler, added a new way to
307 get the symbol names for unmanaged functions, and fixed lots of bugs.
309 2008-01-08 Massimiliano Mantione <massi@ximian.com>
310 * mono-profiler-logging.c: First code drop of new logging profiler
311 (and shamefully forgot to set HAS_OPROFILE to 0...).
312 * Makefile.am: Added logging profiler, but commented in out to avoid
313 breaking the build on Windows.
315 2005-07-25 Zoltan Varga <vargaz@freemail.hu>
317 * mono-cov.c: Applied patch from Iain McCoy (iain@mccoy.id.au). Fixes
320 2003-11-12 Jackson Harper <jackson@ximian.com>
322 * mono-cov.c: Change default assembly name to mscorlib.dll
324 Tue Jul 1 11:26:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
326 * Makefile.am: added.
328 Mon Jun 16 18:21:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
330 * mono-cov.c: coverage profiler.