buffer format, the buffer can now also contain other events than just
stack traces. ATM these are only references to the image events
(created/deleted). Therefore we no longer have to flush the profiling
buffer after such an event, since the debugger can exactly match the
samples. Since we couldn't flush when the profiling timer hit while the
thread was in the kernel, that wasn't working that well anyway.
"profile -f" fails to translate stack trace addresses only very rarely,
now.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27775 a95241bf-73f2-0310-859d-f6bbb57e9c96
can load the image files, we can still do symbol lookups just fine.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27774 a95241bf-73f2-0310-859d-f6bbb57e9c96
exec*()ed, the debugger never got notified that a runtime loader image
was created.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27773 a95241bf-73f2-0310-859d-f6bbb57e9c96
using it for something else screws stack traces while being in such a
function.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27772 a95241bf-73f2-0310-859d-f6bbb57e9c96
caused lots of bugs (like #2758, and obviously also #1641). Thanks a lot!!
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27771 a95241bf-73f2-0310-859d-f6bbb57e9c96
enumeration (getting roothubs, enumerating child devices and detecting device
topology) and hub port management (resetting and disabling ports). These were
laying around for quite some time.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27768 a95241bf-73f2-0310-859d-f6bbb57e9c96
needed on plain R5 and actually wouldn't work if the module would ever get
unloaded (or reloaded afterwards).
* Added comment explaining that above the concerning code.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27765 a95241bf-73f2-0310-859d-f6bbb57e9c96
- add missing controls for R5 version
- hack to work around a race that happens on BeOS at least, someone should fix it better. stippi ?
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27764 a95241bf-73f2-0310-859d-f6bbb57e9c96
and thus, with a multiple jobs build, jobs.c could be compiled before
the header was generated.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27763 a95241bf-73f2-0310-859d-f6bbb57e9c96
case the cd_driver_info::io_scheduler field is not initialized and we
shouldn't try to access it. No idea why, but this only crashed with
the gcc4 build.
* Fixed warning with tracing enabled.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27762 a95241bf-73f2-0310-859d-f6bbb57e9c96
up module image paths in module_init_post_boot_device(). Not sure whether
it also could cause #2776.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27760 a95241bf-73f2-0310-859d-f6bbb57e9c96
* No longer send a SIGKILL when a page fault occurred, there was no
signal handler, and the debugger told us to continue as usual. Instead
we send a SIGSEGV. Instead in handle_signal() when not in the main
thread and there's no handler for the signal, we first send the main
thread a SIGKILL before letting the thread die.
So in cases where the main thread caused an unhandled page fault, the
team will die from the SIGSEGV, now. This fixes bug #2773.
* For the other hardware-caused signals we do now do the same as in case
of page faults, i.e. we first check whether the thread has a handler
for the signal in question. If so, we don't notify the debugger, but
send the signal right away.
* B_GENERAL_PROTECTION_FAULT is translated to SIGILL now. Seems better
than SIGKILL.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27757 a95241bf-73f2-0310-859d-f6bbb57e9c96
letting the boot loader provide full paths for the pre-loaded images.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27753 a95241bf-73f2-0310-859d-f6bbb57e9c96
been mounted, before anyone could try to load any modules from it.
Also pass it a flag whether the boot volume is where the boot loader
pre-loaded the modules from.
* module_init_post_boot_device() changes the pre-loaded module image
paths to normalized boot volume paths, now. Got rid of the code in
register_preloaded_module_image() which tried something like this.
* Changed module image ref counting. A referenced module has single
reference to its image, which is released when the module becomes
unreferenced.
* get_module() for a reference module will not try to re-get and re-set
the module's image anymore. That could lead to a similar module (from
different paths) being loaded at the same time. A module from a new
file can only be loaded when the old one has been put completely.
* Simplified B_KEEP_ALIVE module handling a bit. When the module is
initialized, we add another reference, which we'll never free. Thus
the module remains loaded without special handling. Removed
module_image::keep_loaded. A B_KEEP_ALIVE module remains referenced
and thus its image remains referenced, too.
* Removed module::file, a cached path to the module's image. An
optimization that wouldn't work with multiple root directories for
modules (/boot/beos/..., /boot/common/...) or when module files were
moved. get_module() does now always search the image file, when the
module is still unreferenced. This should be a bit slower than before,
but I didn't notice any difference in VMware at least. If it turns out
to be a problem we could introduce a more intelligent cache that stays
up to date by using node monitoring.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27752 a95241bf-73f2-0310-859d-f6bbb57e9c96
function (normalize_path()), now. There was some code duplication
before.
* Added "bool traverseLink" parameter to vfs_normalize_path(). When
true and the leaf component is a symlink, it will be resolved.
* KPath:
- Added similar leaf link traversal parameter to SetTo() and
SetPath().
- Added Normalize().
- Added DetachBuffer(), which returns the object's current buffer and
unsets itself.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27751 a95241bf-73f2-0310-859d-f6bbb57e9c96
code (like found in Firefox) that relies on get_next_image_info() to
return it first.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27732 a95241bf-73f2-0310-859d-f6bbb57e9c96