Age | Commit message (Collapse) | Author |
|
With this, profilers can distinguish between the two, and also know what the
target method of a tail call is.
The call instrumentation flags have been renamed accordingly and a new flag has
been added for instrumenting tail calls. I've also added a flag for exceptional
leave events, and method_exception_leave is only raised if this flag is given
for a method.
Also refactored the relevant JIT code a bit so it's easier to follow.
|
|
- Fix the Linux build instructions.
- Remove eglib dependencies, as they complicate the build of an
extenral module.
- Make instance static instead of heap-allocated.
- Make the call counter 64 bits.
- Adjustments to accommodate the new profiling API.
|
|
|
|
So mono_profiler_init becomes e.g. mono_profiler_init_log.
This allows us to link together multiple profilers into a single module and
load them selectively. This is especially useful for XA/XI/XM.
|
|
* Profiler callbacks can now be changed and disabled at any point.
* API users no longer have to set event flags. The API instead uses a counter
internally for each type of callback.
* Filter functions for enter/leave instrumentation can be installed, and they
can choose whether to instrument the prologue, epilogue, or both.
* Managed allocators can now be instrumented for allocation profiling.
* A profiler must now declare that it wishes to use allocation profiling and/or
sampling in its init function.
* Sampling parameters can now be changed at any point, and the sampling thread
can be put into an idle mode when no sampling is needed.
* Only one profiler can have control over the sampling parameters. Whichever
profiler enables sampling first gets control.
* Adding new events is now very easy: One line in profiler-events.h and one
line wherever the event should be raised.
* Lifted the restriction that enter/leave instrumentation would cause an abort
in full AOT mode.
* Support for call chain sampling has been removed.
* Support for the old, platform-specific code coverage mode has been removed.
* The new profiler module entry point is mono_profiler_init. If a module has
a mono_profiler_startup symbol (the old entry point), a warning will be
printed and the module won't be loaded.
* Updated the profiler test suite to work with instrumented managed allocators.
|
|
--with-overridable-allocators and exposed through mono_set_allocator_vtable
|
|
|
|
add compilation instructions
|
|
|
|
longer supported, see http://lists.gnu.org/archive/html/automake/2012-08/msg00087.html.
|
|
|
|
|
|
* confiure.in, data/mono-2.pc.in, data/Makefile.am,
samples/embed/*: increase the API version.
svn path=/trunk/mono/; revision=152356
|
|
* samples/CMakeLists.txt: New file, currently empty.
svn path=/trunk/mono/; revision=136079
|
|
svn path=/trunk/mono/; revision=128265
|
|
svn path=/trunk/mono/; revision=89560
|
|
* samples/embed/teste.c: Add a newline at the end of this printf()
svn path=/trunk/mono/; revision=89397
|
|
* *.vcproj: Move to msvc directory.
* *.bat: Move to msvc directory.
* libgc/misc.c: Use correct string type for GetModuleHandle.
svn path=/trunk/mono/; revision=74203
|
|
*.vcproj: Fix Release build target, add define to remove CRT warnings,
structure output folders a bit better, begin WIN64 port.
*.bat: Use output from current VS target for executable.
* icall.c: Fix environ access on windows.
* gc.h: Fix Win64 typedef.
svn path=/trunk/mono/; revision=74191
|
|
svn path=/trunk/mono/; revision=68847
|
|
* samples/size/size.c: Flesh this out quite a bit more so that
its results are more accurate.
* samples/size/sample.cs: Add a few more test cases.
svn path=/trunk/mono/; revision=66660
|
|
* samples/embed/test-invoke.vcproj samples/embed/teste.vcproj: Fix include paths for newer glib versions.
svn path=/trunk/mono/; revision=64632
|
|
svn path=/trunk/mono/; revision=63458
|
|
svn path=/trunk/mono/; revision=63436
|
|
svn path=/trunk/mono/; revision=63435
|
|
* assembly.c (mono_set_dirs): New API entry point to set the
assembly and the config directory in one call
A more robust framework for relocation and a public API for embedders to use.
svn path=/trunk/mono/; revision=52816
|
|
svn path=/trunk/mono/; revision=50597
|
|
svn path=/trunk/mono/; revision=45050
|
|
svn path=/trunk/mono/; revision=42352
|
|
svn path=/trunk/mono/; revision=40731
|
|
svn path=/trunk/mono/; revision=38700
|
|
svn path=/trunk/mono/; revision=30034
|
|
svn path=/trunk/mono/; revision=29943
|
|
* samples/embed/testi.c: interpreter embedding example
svn path=/trunk/mono/; revision=21443
|
|
svn path=/trunk/mono/; revision=17581
|
|
svn path=/trunk/mono/; revision=17255
|
|
svn path=/trunk/mono/; revision=15129
|
|
svn path=/trunk/mono/; revision=15093
|
|
Fixes bugs 34263 and 31333.
(All tests still behave the same way - 4 fails)
2003-01-23 Dick Porter <dick@ximian.com>
* threads.c (start_wrapper): Create a Thread object if needed, so
the Main() thread can do the class initialisation in a subthread
that has been set up to allow managed code execution.
Pass the thread ID instead of the MonoThread pointer to the thread
start and attach callbacks. This change is required, because the
jit thread start callback must be called _before_ the Thread
object can be created.
(mono_thread_init): Removed much object creation code that is no
longer needed. No managed code is called from here now.
* object.c (mono_runtime_exec_managed_code): Create a subthread
for Main, and call back to the runtime to use it.
Set the exit code when Main exits.
* gc.c: Make sure domain finalisation happens in a subthread.
Re-enable threaded GC, fixing bug 31333 (again).
* environment.c: System.Environment internall calls (so far just
ExitCode is here, the others are still in icall.c)
* appdomain.c (mono_runtime_cleanup): All threads running managed
code should have finished before mono_runtime_cleanup() is
reached, so no need to clean up threads.
2003-01-23 Dick Porter <dick@ximian.com>
* mono.c: Use mono_runtime_exec_managed_code() to run all managed
code in a subthread.
* jit.c: Changed thread start and attach callbacks to pass the
thread ID, not the MonoThread pointer. Arrange that managed code
execution will fail an assertion in the main thread, just to be
sure.
2003-01-23 Dick Porter <dick@ximian.com>
* interp.c: Use mono_runtime_exec_managed_code() to run all
managed code in a subthread.
svn path=/trunk/mono/; revision=10838
|
|
svn path=/trunk/mono/; revision=8008
|
|
svn path=/trunk/mono/; revision=5990
|
|
svn path=/trunk/mono/; revision=5938
|