Commit Graph

11696 Commits

Author SHA1 Message Date
Ingo Weinhold
edc47dd584 The debugger interface has changed a bit.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11716 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-13 23:59:20 +00:00
Ingo Weinhold
b24684af25 There are now two different callbacks for break- and watchpoints.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11715 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-13 23:58:36 +00:00
Ingo Weinhold
823f4c5bf4 * Various modifications needed due to the changes in <debugger.h>.
* user_debug_break_or_watchpoint_hit() into separate functions for
  break- and watchpoints. The one for breakpoints gets another parameter
  which indicates whether the breakpoint was a soft- or hardware
  breakpoint. This info is also sent to the debugger.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11714 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-13 23:57:34 +00:00
Ingo Weinhold
4991e4c9c5 * get_debug_why_stopped_string() -> get_debug_message_string().
* Changed the index-based lookup of strings for debug message and
  exception codes to a search through entry lists. A bit slower, but more
  robust with respect to changes of the underlying enumerations.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11713 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-13 23:48:37 +00:00
Ingo Weinhold
291e414a9e * Somehow this B_DEBUGGER_MESSAGE_THREAD_STOPPED message bothered me.
Most of the debug events had their own message, but some were grouped
  into this `stopped' message with a `why' field to describe what kind
  of event it actually was. Hence the user had to check two levels until
  they could know what event occurred. So I got rid of this message and
  provided separate messages for the concerned events.
* Got rid of B_DEBUG_MESSAGE_GET_WHY_STOPPED and introduced
  B_DEBUG_MESSAGE_GET_CPU_STATE which is pretty much the same.
* Put B_DEBUG_MESSAGE_RUN_THREAD and B_DEBUG_MESSAGE_STEP_THREAD into
  a single B_DEBUG_MESSAGE_CONTINUE_THREAD message with a boolean
  `single_step' field.
* get_debug_why_stopped_string() -> get_debug_message_string().


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11712 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-13 23:43:05 +00:00
Adi Oanca
c14d3fc9bd Some progress on supporting subset windows.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11711 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-13 22:54:01 +00:00
Adi Oanca
8866e7b709 RootLayer.h: introduced a method for highlighting window tab when focus
changes.
RootLayer.cpp: window tab was properly lit only when changing focus with
the mouse. Now the same happens when showing or hidding windows.
Desktop.cpp: normal windows created after floating windows did not had
B_FLOATING_APP_WINDOW_FEEL windows in their internal list, thus when such
a window was selected to become the front most it did not show floating
app windows in front of it. Fixed that now.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11710 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-13 19:53:44 +00:00
Adi Oanca
9015d08261 .
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11709 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-13 17:07:40 +00:00
Adi Oanca
c9df3905a8 Improved performance when getting windows list from the active workspace. no more call malloc() every time the list was needed.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11708 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-12 23:26:05 +00:00
Ingo Weinhold
3a3b405008 Adjustions due to changes in the debugger interface
(there's a separate B_DEBUGGER_MESSAGE_EXCEPTION_OCCURRED now).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11707 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-12 21:56:31 +00:00
Ingo Weinhold
ebac278f8f Some simplifications. Also tried to get rid of the ostensible error
condition when the traced team exits, but this seems to be a inherent
problem. The thread that calls _kern_exit_team() apparently still manages
to send the post-syscall message, but when the debugger tries to continue
it, it is already gone. Not really harmful. We'll probably find a remedy
later.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11706 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-12 21:55:03 +00:00
Ingo Weinhold
d00bf1778d * user_debug_fault_occurred() -> user_debug_exception_occurred().
* No longer kill the time when a page fault occurs, but rather send a
  SIGSEGV.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11705 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-12 21:47:21 +00:00
Ingo Weinhold
20b656f066 * Check the thread debug signal ignore masks before notifying the debugger
of a signal.
* Added sigaction_etc(). It's just a sigaction() for which the thread
  in question can be specified.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11704 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-12 21:45:49 +00:00
Ingo Weinhold
293a59b0e9 * The debug_thread_info records now, which signals the debugger wishes
not to be notified.
* Added debugger commands for setting/getting of thread signal ignore
  masks and signal handlers.
* Renamed user_debug_fault_occurred() to a more correct
  user_debug_exception_occurred(). It no longer sends a `stopped' message,
  but the new one dedicated to exceptions. Additionally the number of the
  signal is supplied that will be sent, when the thread continues (without
  indicating to ignore the event).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11703 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-12 21:43:35 +00:00
Ingo Weinhold
03f92cacce Added new function get_debug_exception_string(). Refactored a bit.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11702 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-12 21:37:01 +00:00
Ingo Weinhold
1619a2e5b4 * The exceptions now have their own debugger message. Added
get_debug_exception_string() to get a user-readable string for an
  exception type.
* Added more signal support. Now the debugger can set per thread which
  signals it wishes to be notified of. It can also just ignore the next
  occurrence of a signal.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11701 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-12 21:35:31 +00:00
Adi Oanca
f79cd266f0 GetLooperList(BList* list) returns only valid loopers
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11700 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-12 19:21:30 +00:00
Adi Oanca
c92d950958 Solved a deadlock situation which occured when quiting be_app.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11699 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-12 19:20:10 +00:00
Ingo Weinhold
4ef509f03b New switch '-l' which allows to debug the loading of the traced application.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11698 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-12 15:24:00 +00:00
Ingo Weinhold
0b5637ed3a Argh! This change should have been checked in two days ago!
* Added support for debugger handover. The current debugger need to send
  a B_DEBUG_MESSAGE_HANDED_OVER message. The rest is completely
  transparent to the new debugger. It simply calls install_team_debugger().
* Implemented _user_wait_for_debugger().
* Reworked a few bits to ensure that after a remove_team_debugger() or
  after requesting a debugger handover the debugger doesn't get any more
  messages.
* When the debugger is removed or dies, the debugged threads should now
  cleanup their debug info and continue, instead of waiting at their
  debug port forever.
All the new features are not tested. Will happen, when gdb will be
debugged.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11697 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-12 15:22:28 +00:00
Ingo Weinhold
4d5289b7f0 load_team_etc() now optionally waits for the new team to be loaded
(new `flags' parameter, flag B_WAIT_TILL_LOADED). This is the default
behaviour for load_image(), so it behaves like R5's implementation now,
i.e. errors while loading are reported to the caller.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11696 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-12 15:13:51 +00:00
Ingo Weinhold
0dd3a50bb3 _user_load_image() has a flags parameter now. Added a new structure team_loading_info, which is referenced by the team structure while the team is being loaded..
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11695 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-12 15:11:08 +00:00
Ingo Weinhold
0e83032441 * Added _user_image_relocated() and _user_loading_app_failed().
* We no longer notify the debugger about a new image when it is registered,
  but when it has been relocated.
* When the application image has been relocated, we notify the one who
  initiated its loading.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11694 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-12 15:09:09 +00:00
Ingo Weinhold
3a96ba0bed Added _user_image_relocated() and _user_loading_app_failed().
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11693 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-12 15:05:12 +00:00
Ingo Weinhold
5935412cad load_image(): _kern_load_image() now has a flags parameter. We pass B_WAIT_TILL_LOADED.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11692 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-12 15:04:03 +00:00
Ingo Weinhold
b484724711 Ugh! Forgot to add ffs.cpp.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11691 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-12 15:02:46 +00:00
Ingo Weinhold
9a28130b32 Added (currently only) flag B_WAIT_TILL_LOADED for _kern_load_image()
(maybe this should better go into a private header?). If given the function
waits till the loader is done with loading and relocating the executable.
Otherwise it returns before the loader starts.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11690 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-12 15:01:25 +00:00
Ingo Weinhold
7884e8986b * _kern_load_image() has a `flags' parameter now.
* Added _kern_image_relocated() and  _kern_loading_app_failed(), which
  are invoked by the loader to provide the kernel with more info.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11689 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-12 14:58:39 +00:00
Ingo Weinhold
0a5054d17f * Renamed the RFLAG_SORTED flag to RFLAG_INITIALIZED, since that is what
it actually meant.
* Refactored the image initialization process (init_dependencies()) a bit.
  topological_sort() is now more flexible.
* The image relocation is now done by relocate_dependencies(). The order
  of relocating the images is the same as the initialization order, so
  that the app image is the last to be relocated. After having relocated
  an image the kernel is notified.
* The FATAL() macro has another parameter, an error code now, and calls
  the new syscall _kern_loading_app_failed() instead of _kern_exit_team().
  So the error can be reported to the team that called load_image().


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11688 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-12 14:56:18 +00:00
Ingo Weinhold
54c3baf3b6 Renamed relocate_image() to arch_relocate_image() and removed the RFLAG_RELOCATED flag handling (done by the architecture independent code now).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11687 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-12 14:47:32 +00:00
Ingo Weinhold
adc9c4c556 [un]load_library() now also supports add-ons. [un]load_addon() is no longer needed.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11686 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-12 00:00:04 +00:00
Ingo Weinhold
2d890ffaa2 * Introduced a new flag for preventing load_dependencies() to be run a
second time for already loaded libraries, when a library/add-on is
  loaded.
* image_t features now both, a path and a name. The name is the DT_SONAME,
  if present, the leaf name otherwise.
* Modified find_image() to compare both path and name, if necessary.
  Added a type mask parameter to specify what image types one is
  interested.
* Refactored open_container(). We now also support DT_RPATH, a dependency
  search path list that can be specified for the dependencies of a shared
  object.
* Extended [un]load_library() to support add-ons.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11685 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-11 23:36:32 +00:00
Ingo Weinhold
0b4af91dad The bfs_shell xcp has been renamed to cp.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11684 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-11 17:59:41 +00:00
Ingo Weinhold
01203fdf42 Made a bit more compliant to the shell `cp':
* When the target is a symlink, it is tried to be resolved before making
  the decision what to do.
* If the (resolved) target is a file and the source is a file, we don't
  fail anymore, if `-f' wasn't specified. We truncate the target file
  instead and copy the source data into it.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11683 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-11 17:52:29 +00:00
Ingo Weinhold
2c05bc8a8d Move to_platform_open_mode() to stat_util.cpp/h and made it available to other source files. It has little to do with stat data, but it fits with the other conversion functions at least and I found no better place.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11682 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-11 17:48:21 +00:00
Ingo Weinhold
6ce30cc809 Made xcp the default cp/copy command. The code for it is still there, for it is also used in other tests.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11681 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-11 17:45:59 +00:00
Ingo Weinhold
f277fb639d * Prevent double deletion when setting to an object that is already set.
* Added Unset() and Delete() methods.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11680 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-11 17:44:55 +00:00
Jérôme Duval
cc3255267c EDESTADDRREQ is now defined
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11679 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-11 16:49:14 +00:00
mahlzeit
d1c4420ee5 Added preliminary support for using TiMidity++ as softsynth.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11678 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-11 16:48:12 +00:00
Stefano Ceccherini
5040785e7d BChannelControl::SetAllValue() didn't take limits into account. Horizontal sliders now at least are drawn correctly, even if they don't work well. Added a temporary visual hint of where's the bitmap frame. Enhanced a bit the drawing of the groove.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11677 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-11 13:20:01 +00:00
Axel Dörfler
6f0f950768 Now has its own implementation of getenv().
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11676 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-11 00:51:20 +00:00
Axel Dörfler
9689bb8114 Removed env.c from rld.so - it now has to do it on its own.
Added posix_pthread.o to libroot.so.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11675 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-11 00:49:49 +00:00
Axel Dörfler
983d4534bc get_team_info() now also fill in the info about the debug nub thread.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11674 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-10 23:19:25 +00:00
Axel Dörfler
3c75dcf982 Removed team::user_env_base; it's no longer needed.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11673 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-10 23:08:16 +00:00
Axel Dörfler
14ddef038a Removed setenv()/getenv() syscalls - they are no longer needed.
Also removed team::user_env_base: environment variables are now changed on the app's heap.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11672 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-10 23:06:51 +00:00
Axel Dörfler
8e6c95bcce Removed setenv()/getenv() syscalls - env is now changed on the heap.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11671 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-10 23:04:48 +00:00
Axel Dörfler
1ef5fc339b __init_env() is now called.
malloc() currently cannot be used in initialize_before() in libroot.so,
and therefore a _after() call has been added for this.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11670 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-10 22:54:31 +00:00
Axel Dörfler
707046555e Added pthread stuff to the build.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11669 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-10 22:45:15 +00:00
Axel Dörfler
0d0145515d Implemented userland env handling; it longer uses syscalls for this - I even
made it thread-safe, although this is not required by POSIX.
Implemented unsetenv(), improved putenv().


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11668 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-10 22:41:49 +00:00
Axel Dörfler
3e998caf29 Added some optional to make the function more correct - if it's ever going
to be called that way.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11667 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-10 22:38:01 +00:00