History log of /haiku/src/bin/debug/profile/profile.cpp
Revision Date Author Comments
# 4de612c9 05-Jul-2019 Murai Takashi <tmurai01@gmail.com>

bin/debug/profile: Fix -Wformat=

Change-Id: I94f9e4e68b75a7b84883d1bb7fe3f4e0aa7c6b8a
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1563
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>


# b08627f3 04-May-2018 Murai Takashi <tmurai01@gmail.com>

Fix catching polymorphic type by value

Replace catching polymorphic type std::bad_alloc 'by value'
with 'by reference'.
Pointed by gcc8


# 4dc355e9 27-Jun-2013 Rene Gollent <anevilyak@gmail.com>

Adjust debug_utils functions.

The functions in question now return an error rather than simply calling
exit() directly when they fail, as this behavior wasn't acceptable for
e.g. Debugger. Adjusted all calling apps accordingly.


# 74ec65d8 10-May-2013 Rene Gollent <anevilyak@gmail.com>

Fix profile to recognize commpage image.


# 323b6546 21-Nov-2011 Oliver Tappe <zooey@hirschkaefer.de>

Filtered flat import of Oliver's svn package management branch

Bring the changes that aren't package management related and the ones
that are but don't take effect as long as they are ignored by the build
system into the master.

Summary of changes:
* Introduce private header <directories.h> with constants for a good
deal of paths that should usually be retrieved via find_directory().
* Replace hard-coded paths by using find_directory() or the
<directories.h> constants (e.g. in drivers and the kernel).
* Add find_directory() constants needed for package management.
* Add __HAIKU_ABI_NAME and B_HAIKU_ABI_NAME macros.
* src/apps/deskbar: BeMenu.* -> DeskbarMenu.*,
DeskBarUtils.* -> DeskbarUtils.*
* Change deskbar menu settings directory from ~/config/be to
~/config/settings/deskbar.
* Other smaller cleanups, changes, and fixes.


# 3dfd9cb9 16-Jun-2011 Oliver Tappe <zooey@hirschkaefer.de>

Flat commit of all changes from package-management branch in svn


# 24df6592 11-Jun-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

Merged signals-merge branch into trunk with the following changes:
* Reorganized the kernel locking related to threads and teams.
* We now discriminate correctly between process and thread signals. Signal
handlers have been moved to teams. Fixes #5679.
* Implemented real-time signal support, including signal queuing, SA_SIGINFO
support, sigqueue(), sigwaitinfo(), sigtimedwait(), waitid(), and the addition
of the real-time signal range. Closes #1935 and #2695.
* Gave SIGBUS a separate signal number. Fixes #6704.
* Implemented <time.h> clock and timer support, and fixed/completed alarm() and
[set]itimer(). Closes #5682.
* Implemented support for thread cancellation. Closes #5686.
* Moved send_signal() from <signal.h> to <OS.h>. Fixes #7554.
* Lots over smaller more or less related changes.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42116 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 756b64fd 16-Dec-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

* Removed the obsolescent [B]Reference[able] API and replaced the remaining
uses. Fixes the gcc 2 acpi build.
* Renamed WeakReferenceable::{Add,Remove}Reference() to
{Acquire,Release}Reference() for consistency.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39871 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 75064315 23-Feb-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Made Team BReferenceable. Since teams are usually destroyed before their main
thread, we were accessing already destroyed Team objects.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35591 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c645be35 23-Feb-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Fixed getopt string.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35589 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 28f88875 21-Feb-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

* Made ProfileResult and ImageProfileResults BReferenceable.
* Added command line option '-S', which triggers a new summary mode. When
enabled the image/symbol hits aren't counted for individual threads
anymore, but summed up for all threads. The results are printed at the end.
Works together with all profiling modes (inclusive, exclusive, callgrind).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35573 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5fc675d5 20-Feb-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Some refactoring:
* Added new class ProfiledEntity which Thread derives from and which is the
new dependency for the profile result classes (instead of Thread).
* Renamed *ThreadProfileResult to *ProfileResult and *ThreadImage to
*ProfileResultImage and move ProfileResult[Image] into a new header/source
file.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35546 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 24a9c1bb 20-Jul-2009 Axel Dörfler <axeld@pinc-software.de>

* Added option "-r, --recorded" to profile: this will now retrieve the kernel
profile data area, and evaluate its data - it doesn't produce any output yet,
though.
* _user_system_profiler_recorded() now also makes sure the userland app can read
from the buffer area.
* Fixed leak in SharedImage::Init().
* Made the symbol retriever more smart when it deals with kernel images; if the
image ID is no longer available, it will now use the path based image symbol
iterator (and also adds the boot kernel path, in case the module don't have
one).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31653 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 227fe7d3 23-Apr-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

* Scheduler/wait object listener:
- Moved scheduler listening interface to <listeners.h> and added more
convenient to use templatized notification functions.
- Added a listener mechanism for the wait objects (semaphores, condition
variables, mutex, rw_lock).
* system profiler:
- Hopefully fixed locking issues related to notifying the profiler thread
for good. We still had an inconsistent locking order, since the scheduler
notification callbacks are invoked with the thread lock held and have to
acquire the object lock then, while the other callbacks acquired the object
lock first and as a side effect of ConditionVariable::NotifyOne() acquired
the thread lock. Now we make sure the object lock is the innermost lock.
- Track the number of dropped events due to a full buffer.
_user_system_profiler_next_buffer() returns this count now.
- When scheduling profiling events are requested also listen to wait objects
and generate the respective profiling events. We send those events lazily
and cache the infos to avoid resending an event for the same wait object.
- When starting profiling we do now generate "thread scheduled" events for
the already running threads.
- _user_system_profiler_start(): Check whether the parameters pointer is a
userland address at all.
- The system_profiler_team_added event does now also contain the team's name.
* Added a sem_get_name_unsafe() returning a semaphore's name. It is "unsafe",
since the caller has to ensure that the semaphore exists and continues to
exist as long as the returned name is used.
* Adjusted the "profile" and "scheduling_recorder" according to the system
profiling changes. The latter prints the number of dropped events, now.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30345 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5b2f0f33 18-Apr-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

* Changed the interface of _kern_system_profiler_start(). The parameters are
passed in a structure now, so it is easier to extend it and ignore unused
parameters.
* One can now select which system profiling events one is interested in.
* Added scheduling events to the system profiling interface. Those are pretty
much the ones recorded when scheduler tracing is enabled. Still missing are
the "wait object" events that allow to interpret what a thread is waiting
for.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30243 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 644ab954 16-Apr-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Added support for providing a command line also for the system profiling mode.
Just as in the other mode the command is started and profiling stops when the
command terminates.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30229 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f568799e 17-Apr-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Don't leak the Team objects for teams that are gone.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30228 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1b9d2885 16-Apr-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

* Also pass the team arguments and thread names with the respective system
profiling events.
* profile: Avoid using get_{team,thread}_info() in common code paths. The
system profiling mode is asynchronous, so the team or thread in question
could already be gone.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30193 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 464e95c4 15-Apr-2009 Rene Gollent <anevilyak@gmail.com>

gcc4 build fix.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30186 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1836e909 15-Apr-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

* In exclusive mode we no longer stop searching when we have found an image
for a stack trace, if we haven't actually hit a symbol in the image. This
way we don't get "unknown" image hits for PLT slots anymore.
* In system profiling mode add the kernel images to new teams. The mode should
be usable now. Well, except maybe for the amount of data one gets.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30172 a95241bf-73f2-0310-859d-f6bbb57e9c96


# afa231ac 15-Apr-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

* Reorganized the image management. Introduced a SharedImage which knows the
symbols and is identified by name. Image does still represent a team-bound
image, but it refers to a SharedImage for the symbols, now. This allows us
to load the symbols for a shared object only once and share the data for all
teams referring to it.
* Made the area used for system profiling writable. "-a -f" would segfault
since the return addresses are sorted in-place.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30170 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0f379156 11-Apr-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

* debug_create_symbol_lookup_context() gets a team ID instead of a
debug context now. That's all it needs.
* Added the option "-a" to the profile command line tool. It triggers profiling
of the whole system. There are still some issues, particularly image related
ones.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30129 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ee0d2e64 08-Oct-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

Right check, wrong place. The "-C" option (don't profile child teams)
was broken.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27926 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9aabd0ab 30-Sep-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

Added option "-v <directory>". The tool will generate output files in
valgrind's callgrind format in the given directory. Those can be
analyzed with graphical tools like KCachegrind.
Recursive functions are probably not handled correctly yet.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27804 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 051fad0f 29-Sep-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

More refactoring:
* Moved the BasicThreadProfileResult class, its subclasses and related
code into separate files.
* Made ThreadImage an abstract base class. Pulled the meaty part into
new subclass BasicThreadImage.
* Templatized AbstractThreadProfileResult over the ThreadImage type.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27788 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 72e19fd4 29-Sep-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

Pulled subclass BasicThreadProfileResult out of
AbstractThreadProfileResult. The latter only manages the images, now.
Moved the AddSamples() code into BasicThreadProfileResult subclasses that
handle it depending on whether the function hits are counted inclusively
or exclusively ("-f" option).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27782 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ed2fc873 29-Sep-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

Some refactoring: Separated the profile result collection from the
thread management. There's now a ThreadProfileResult (abstract base
class) object associated with a Thread object. Currently there's only
one (currently misnamed) derived class AbstractThreadProfileResult, but
some more refactoring will make the purpose clearer.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27780 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 120cfc62 29-Sep-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

Moved several classes into their own files.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27779 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4dc355e9a98bf91d5e0851e432692fb267839de0 27-Jun-2013 Rene Gollent <anevilyak@gmail.com>

Adjust debug_utils functions.

The functions in question now return an error rather than simply calling
exit() directly when they fail, as this behavior wasn't acceptable for
e.g. Debugger. Adjusted all calling apps accordingly.


# 74ec65d8439c087c037adc141c418734d0b926d1 10-May-2013 Rene Gollent <anevilyak@gmail.com>

Fix profile to recognize commpage image.


# 323b65468e5836bb27a5e373b14027d902349437 21-Nov-2011 Oliver Tappe <zooey@hirschkaefer.de>

Filtered flat import of Oliver's svn package management branch

Bring the changes that aren't package management related and the ones
that are but don't take effect as long as they are ignored by the build
system into the master.

Summary of changes:
* Introduce private header <directories.h> with constants for a good
deal of paths that should usually be retrieved via find_directory().
* Replace hard-coded paths by using find_directory() or the
<directories.h> constants (e.g. in drivers and the kernel).
* Add find_directory() constants needed for package management.
* Add __HAIKU_ABI_NAME and B_HAIKU_ABI_NAME macros.
* src/apps/deskbar: BeMenu.* -> DeskbarMenu.*,
DeskBarUtils.* -> DeskbarUtils.*
* Change deskbar menu settings directory from ~/config/be to
~/config/settings/deskbar.
* Other smaller cleanups, changes, and fixes.


# 3dfd9cb95ce45f59160d50975210bc55e3fc0709 16-Jun-2011 Oliver Tappe <zooey@hirschkaefer.de>

Flat commit of all changes from package-management branch in svn


# 24df65921befcd0ad0c5c7866118f922da61cb96 11-Jun-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

Merged signals-merge branch into trunk with the following changes:
* Reorganized the kernel locking related to threads and teams.
* We now discriminate correctly between process and thread signals. Signal
handlers have been moved to teams. Fixes #5679.
* Implemented real-time signal support, including signal queuing, SA_SIGINFO
support, sigqueue(), sigwaitinfo(), sigtimedwait(), waitid(), and the addition
of the real-time signal range. Closes #1935 and #2695.
* Gave SIGBUS a separate signal number. Fixes #6704.
* Implemented <time.h> clock and timer support, and fixed/completed alarm() and
[set]itimer(). Closes #5682.
* Implemented support for thread cancellation. Closes #5686.
* Moved send_signal() from <signal.h> to <OS.h>. Fixes #7554.
* Lots over smaller more or less related changes.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42116 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 756b64fd836dad5b63f41f0b01f8cedfec795f9d 16-Dec-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

* Removed the obsolescent [B]Reference[able] API and replaced the remaining
uses. Fixes the gcc 2 acpi build.
* Renamed WeakReferenceable::{Add,Remove}Reference() to
{Acquire,Release}Reference() for consistency.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39871 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 750643152760466f97922716b1b15f086a3b91c4 23-Feb-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Made Team BReferenceable. Since teams are usually destroyed before their main
thread, we were accessing already destroyed Team objects.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35591 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c645be35235e3f0afa6923e51ac59b0dc3d0107f 23-Feb-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Fixed getopt string.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35589 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 28f88875170b0b6b86f7685e4b6c9b6cdf02affd 21-Feb-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

* Made ProfileResult and ImageProfileResults BReferenceable.
* Added command line option '-S', which triggers a new summary mode. When
enabled the image/symbol hits aren't counted for individual threads
anymore, but summed up for all threads. The results are printed at the end.
Works together with all profiling modes (inclusive, exclusive, callgrind).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35573 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5fc675d57e5ebfc2ce837b9bad0fccd5b96c64d9 20-Feb-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Some refactoring:
* Added new class ProfiledEntity which Thread derives from and which is the
new dependency for the profile result classes (instead of Thread).
* Renamed *ThreadProfileResult to *ProfileResult and *ThreadImage to
*ProfileResultImage and move ProfileResult[Image] into a new header/source
file.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35546 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 24a9c1bbba752056902b93c3a79997b6972030e2 20-Jul-2009 Axel Dörfler <axeld@pinc-software.de>

* Added option "-r, --recorded" to profile: this will now retrieve the kernel
profile data area, and evaluate its data - it doesn't produce any output yet,
though.
* _user_system_profiler_recorded() now also makes sure the userland app can read
from the buffer area.
* Fixed leak in SharedImage::Init().
* Made the symbol retriever more smart when it deals with kernel images; if the
image ID is no longer available, it will now use the path based image symbol
iterator (and also adds the boot kernel path, in case the module don't have
one).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31653 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 227fe7d34aeed45d0727a0abde2ea2309352983b 23-Apr-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

* Scheduler/wait object listener:
- Moved scheduler listening interface to <listeners.h> and added more
convenient to use templatized notification functions.
- Added a listener mechanism for the wait objects (semaphores, condition
variables, mutex, rw_lock).
* system profiler:
- Hopefully fixed locking issues related to notifying the profiler thread
for good. We still had an inconsistent locking order, since the scheduler
notification callbacks are invoked with the thread lock held and have to
acquire the object lock then, while the other callbacks acquired the object
lock first and as a side effect of ConditionVariable::NotifyOne() acquired
the thread lock. Now we make sure the object lock is the innermost lock.
- Track the number of dropped events due to a full buffer.
_user_system_profiler_next_buffer() returns this count now.
- When scheduling profiling events are requested also listen to wait objects
and generate the respective profiling events. We send those events lazily
and cache the infos to avoid resending an event for the same wait object.
- When starting profiling we do now generate "thread scheduled" events for
the already running threads.
- _user_system_profiler_start(): Check whether the parameters pointer is a
userland address at all.
- The system_profiler_team_added event does now also contain the team's name.
* Added a sem_get_name_unsafe() returning a semaphore's name. It is "unsafe",
since the caller has to ensure that the semaphore exists and continues to
exist as long as the returned name is used.
* Adjusted the "profile" and "scheduling_recorder" according to the system
profiling changes. The latter prints the number of dropped events, now.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30345 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5b2f0f33f9bcfadc050342f4937b0e4bf31fc6eb 18-Apr-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

* Changed the interface of _kern_system_profiler_start(). The parameters are
passed in a structure now, so it is easier to extend it and ignore unused
parameters.
* One can now select which system profiling events one is interested in.
* Added scheduling events to the system profiling interface. Those are pretty
much the ones recorded when scheduler tracing is enabled. Still missing are
the "wait object" events that allow to interpret what a thread is waiting
for.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30243 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 644ab9549608d7d0d9eadad66c40737f058c49b6 16-Apr-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Added support for providing a command line also for the system profiling mode.
Just as in the other mode the command is started and profiling stops when the
command terminates.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30229 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f568799e1b77a0957f8b6e79cdb8894272b0dcd9 17-Apr-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Don't leak the Team objects for teams that are gone.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30228 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1b9d2885d30d9fb9bdd083550d9da97c0e80af6c 16-Apr-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

* Also pass the team arguments and thread names with the respective system
profiling events.
* profile: Avoid using get_{team,thread}_info() in common code paths. The
system profiling mode is asynchronous, so the team or thread in question
could already be gone.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30193 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 464e95c43f41f26b33c89f2184b5c1c75ea49d7f 15-Apr-2009 Rene Gollent <anevilyak@gmail.com>

gcc4 build fix.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30186 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1836e90993bd83881c487b2096b52487032d7fcf 15-Apr-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

* In exclusive mode we no longer stop searching when we have found an image
for a stack trace, if we haven't actually hit a symbol in the image. This
way we don't get "unknown" image hits for PLT slots anymore.
* In system profiling mode add the kernel images to new teams. The mode should
be usable now. Well, except maybe for the amount of data one gets.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30172 a95241bf-73f2-0310-859d-f6bbb57e9c96


# afa231acb89e3fe30b4b0afae6a17f7fa69078df 15-Apr-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

* Reorganized the image management. Introduced a SharedImage which knows the
symbols and is identified by name. Image does still represent a team-bound
image, but it refers to a SharedImage for the symbols, now. This allows us
to load the symbols for a shared object only once and share the data for all
teams referring to it.
* Made the area used for system profiling writable. "-a -f" would segfault
since the return addresses are sorted in-place.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30170 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0f3791568750bf18150d932c1e5fba2a215b9344 11-Apr-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

* debug_create_symbol_lookup_context() gets a team ID instead of a
debug context now. That's all it needs.
* Added the option "-a" to the profile command line tool. It triggers profiling
of the whole system. There are still some issues, particularly image related
ones.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30129 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ee0d2e644522a5feca6fb10f5ffc837e78b4524d 08-Oct-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

Right check, wrong place. The "-C" option (don't profile child teams)
was broken.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27926 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9aabd0ab3aa05f19544617bd185564e6c30050aa 30-Sep-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

Added option "-v <directory>". The tool will generate output files in
valgrind's callgrind format in the given directory. Those can be
analyzed with graphical tools like KCachegrind.
Recursive functions are probably not handled correctly yet.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27804 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 051fad0f92b2a631351f8a7fbb1b02235840d68c 29-Sep-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

More refactoring:
* Moved the BasicThreadProfileResult class, its subclasses and related
code into separate files.
* Made ThreadImage an abstract base class. Pulled the meaty part into
new subclass BasicThreadImage.
* Templatized AbstractThreadProfileResult over the ThreadImage type.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27788 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 72e19fd42681e08daec05ef864a661a6fe6fbec9 29-Sep-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

Pulled subclass BasicThreadProfileResult out of
AbstractThreadProfileResult. The latter only manages the images, now.
Moved the AddSamples() code into BasicThreadProfileResult subclasses that
handle it depending on whether the function hits are counted inclusively
or exclusively ("-f" option).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27782 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ed2fc873006d382ca1b45ea9fd2a4623c0198d8c 29-Sep-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

Some refactoring: Separated the profile result collection from the
thread management. There's now a ThreadProfileResult (abstract base
class) object associated with a Thread object. Currently there's only
one (currently misnamed) derived class AbstractThreadProfileResult, but
some more refactoring will make the purpose clearer.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27780 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 120cfc62383936b6b6b17c1c19852b074ab87401 29-Sep-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

Moved several classes into their own files.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27779 a95241bf-73f2-0310-859d-f6bbb57e9c96