src/tests/servers/app/Jamfile. This makes the original Jamfile much cleaner.
Note that you now have to maintain two Jamfiles when adding/removing sources.
The test app server is called haiku_app_server, its library
libhaikuappserver.so. I adjusted a few paths in scripts accordingly, but
I may have missed something elsewhere.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13858 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Added the respective case statement in AppServer::DispatchMessage().
The code that actually activates the app is still missing.
* Removed the remnants of the old way of notifying the registrar about
what app got activated (the activated client window did that).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13820 a95241bf-73f2-0310-859d-f6bbb57e9c96
their path could be invalid in other contexts (e.g. the debug server might
be unabled to find them). This seems to be what BeOS does, too.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13796 a95241bf-73f2-0310-859d-f6bbb57e9c96
user application performs a division by zero or causes a general
protection fault. For some exceptions (e.g. machine check) I wasn't
quite sure whether they can be caused by user apps at all, so we panic()
in those cases. Wouldn't harm, if someone more knowledgable would check
this, though.
* Removed the unused fault handling stuff, respectively moved the little
that was used into x86/arch_int.c.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13795 a95241bf-73f2-0310-859d-f6bbb57e9c96
grist caused bfd to be compiled using gdb's config.h. This made it think
Haiku had no fcntl() and thus assumed shared objects were opened r/w instead
of read-only, which made it write back data when closing the files. So this
fixes the problem that gdb damages the shared objects it had loaded.
Basically two questions remain:
1) Why does BFD write something into the files that makes them invalid?
2) Why was it possible to write something into the read-only opened files?
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13791 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Print the debugger message in case the debugged team called debugger(),
and the description of an occurred exception respectively.
* Properly keep gdb's internal thread list up to date. This fixes the
problem that an attached debugger always resumed all threads of the
debugged team.
* A bit of cleanup of the attaching code.
Discovered an ugly bug: When invoking gdb with an executable -- regardless
of whether attaching gdb to a running process or just starting a debugger
session with the executable -- the executable is modified. I tested with
"crashing_app" and in the second debug session gdb fails to read the debug
info from the file and encounters a weird error when closing the file:
"No space left on device." I have the suspicion that this is another bug
in Axel's VM/file cache pet. :-P
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13775 a95241bf-73f2-0310-859d-f6bbb57e9c96
implementations (e.g. SVR4) don't do that, but I don't see how it could
work otherwise. Maybe other systems place the executable's code exactly
where specified in the executable and hence noone ever noticed...
Anyway, this makes stack traces (and probably other things that were broken
before) work with an attached gdb.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13762 a95241bf-73f2-0310-859d-f6bbb57e9c96
concerned shared object's file, which probably is a bit overkill) and added
respective comments.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13725 a95241bf-73f2-0310-859d-f6bbb57e9c96
Deskbar to initiate the shutdown process asynchronously. Couldn't test it,
because opening the Be menu doesn't work:
***PANIC: BW: Can't find view with ID: 19 !***
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13722 a95241bf-73f2-0310-859d-f6bbb57e9c96
debug_server uses this feature to print stack traces with symbols.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13698 a95241bf-73f2-0310-859d-f6bbb57e9c96
need to transfer the ownership, when handing over the team to another
debugger.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13696 a95241bf-73f2-0310-859d-f6bbb57e9c96
we get at least a stack trace when the app server crashes under qemu when
starting up.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13685 a95241bf-73f2-0310-859d-f6bbb57e9c96
one alert, when two threads of a team crash. Now we have a per team queue
of debug messages and a thread per team that processes them (that is
usually only the first one). The application class does nothing anymore.
* Implemented debugger handover:
- In case of normal apps, when the relevant servers needed for GUI are
running, we show an alert and, if requested, start a MiniTerminal with
gdb for the crashed team. I couldn't really test it, since alerts don't
seem to work, respectively crash the app server (usually both ;-).
- In case the app server crashes, we always start a consoled with gdb.
This does indeed seem to work.
A gdb attached to a team is not really useful yet, since the shared object
relocations seem to be incorrect, so "bt" is not giving any useful info.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13684 a95241bf-73f2-0310-859d-f6bbb57e9c96
is sent to a debugger when the debugged team has been successfully handed
over to another debugger.
* Fixed handling of B_DEBUG_MESSAGE_PREPARE_HANDOVER. We don't send a reply.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13683 a95241bf-73f2-0310-859d-f6bbb57e9c96
specified via options -l and -s. An arbitrary program can be run in the
terminal instead of a shell.
* Console::fState was never initialized which could cause the terminal to
not print anything.
* stdin, -out, and -err were set in MiniView::Start() and in
MiniView::ExecuteShell(). Thus resetting them in the latter method after
executing the shell had no effect. Removed it in the former method and
now reset them after loading, but before resuming the shell.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13676 a95241bf-73f2-0310-859d-f6bbb57e9c96
shutdown (input, app, debug server, and registrar).
* Fixed crashing bug, if the shutdown was aborted before the window was
created.
* The text of the confirmation alert depends on whether we reboot or
shut down.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13643 a95241bf-73f2-0310-859d-f6bbb57e9c96
* When an application aborts the shutdown process by refusing to quit, the
shutdown window says so for 3 seconds before closing.
* Fixed the height of the normal buttons in the shutdown window. They
accidentially got the size of a default button.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13564 a95241bf-73f2-0310-859d-f6bbb57e9c96
user_shutdown_reply reliably crashes the app server when pressing one
of its buttons (during the shutdown process at least).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13540 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Implemented handling of apps blocking on modal windows.
* Fixed a few bugs.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13539 a95241bf-73f2-0310-859d-f6bbb57e9c96
someone with app server insight wants to do that. :-)
* Simplified main_thread_for() for Haiku.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13538 a95241bf-73f2-0310-859d-f6bbb57e9c96
asked to quit in parallel. Instead they are asked one after the other.
Played with the window to look more like the one in BeOS. The "shadow" on
the left side is still missing, but otherwise it's close.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13496 a95241bf-73f2-0310-859d-f6bbb57e9c96
busy loop of the MessageDeliverer when the port was deleted while there
were still messages to send.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13489 a95241bf-73f2-0310-859d-f6bbb57e9c96
in parallel, it displays the mini icons of all still running apps. Doesn't
look that great, though. Also, quitting the apps in parallel speeds up the
shutdown process, but has the disadvantage, that all apps will throw their
"Save changes...?" alerts at the user at once, which might not be a
desirable experience. I'll probably revert to the way Be did it.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13488 a95241bf-73f2-0310-859d-f6bbb57e9c96
avoid all dependencies on libraries (that have been specified with
LinkSharedOSLibs or a rule that uses it).
This means you can now run a
NO_LIBRARY_DEPENDENCIES=1 jam MyApp
to build MyApp without updating any library MyApp depends on, even if they
have changed. This is a feature for people who know what they are doing to
speed up development.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13483 a95241bf-73f2-0310-859d-f6bbb57e9c96
It's already done in BLooper. Now we additionally send a reply to it, when
the message comes from the registrar on shutdown.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13419 a95241bf-73f2-0310-859d-f6bbb57e9c96
any public header.
* Replaced a good deal of the MessageDeliverer's DeliverMessage() versions
by more general ones using the new interface MessagingTargetSet to represent
a set of targets. This simplifies the usage in cases where the caller doesn't
already have the targets in a supported representation.
* Implemented a first approximation of the shutdown process. There is no
GUI yet. Only superficially tested under R5.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13417 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Adjusted the shutdown command to use BRoster::ShutDown(). Removed
the alert.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13416 a95241bf-73f2-0310-859d-f6bbb57e9c96
a compiler bug).
* Don't try to cleanup the app server connection stuff, when compiled
with RUN_WITHOUT_APP_SERVER.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13414 a95241bf-73f2-0310-859d-f6bbb57e9c96
- B_SHUTDOWN_CANCELLED: The shutdown process was cancelled (most likely by
the user).
- B_SHUTTING_DOWN: An operation cannot be performed, since the system is
shutting down (e.g. BApplication creation).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13413 a95241bf-73f2-0310-859d-f6bbb57e9c96
for servers, that don't have a GUI or want to control when the app server
connection is established.
* BServer is necessarily a friend of BApplication, for it uses a private
constructor. Hence BApplication::Private::InitGUIContext() is no longer
needed.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13315 a95241bf-73f2-0310-859d-f6bbb57e9c96
BApplication::Private class for accessing relevant parts.
* Pulled the app server connection and IK initialization out of
InitData() into a new method _InitGUIContext() and introduced a private
constructor that allows to avoid this initialization. This will be used
for servers that don't have GUI respectively want to init the app server
connection later.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13312 a95241bf-73f2-0310-859d-f6bbb57e9c96
for these changes. I was mostly just staring in amazement at the screen
while Axel and Thomas were discussing IA32 internals. A particularly
fascinating moment was when Thomas produced the cause of a bug we had
been trying to track down for hours off the top of his head (of course
iret behaves specially when the NT bit is set :-). His slowness must be
excused though, since he hadn't slept for more then 30 hours. ;-)
The code doesn't wholeheartedly deal with multi-processor machines yet.
Axel will certainly do some cleanup...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12239 a95241bf-73f2-0310-859d-f6bbb57e9c96
describe partitions that are out of bounds. We simply ignore those now,
instead of letting the complete scanning fail.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12206 a95241bf-73f2-0310-859d-f6bbb57e9c96
partitioning system module relies on it, otherwise extended
partitions won't be recognized.
* Be a little less lazy and do the priority partition recognition,
i.e. all partitioning systems are asked to identify a partition and
the one that believes it can handle the partition best, wins the pot.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12187 a95241bf-73f2-0310-859d-f6bbb57e9c96
* We apparently cannot use constants like kPartitionTypeIntelExtended
in static array initializers in the kernel.
* Fixed misunderstanding between Axel (boot loader) and me (Intel
partitioning system module) how to deal with the cookie the
identify() hook returns. We switch to a someone cleaner method by
always invoking free_identify_cookie() for it, even if it were passed
to scan(). Since we want to keep the cookie, we add a reference
counter to it.
This should fix a couple of issues with recognizing the boot partition.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12185 a95241bf-73f2-0310-859d-f6bbb57e9c96
Everything compiles here, but I couldn't test it yet, since Haiku
doesn't seem to boot properly at the moment.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12104 a95241bf-73f2-0310-859d-f6bbb57e9c96
after fork()ing and recreate all semaphores we've been using. To do
the latter, we simply maintain a list of all locks.
fork()ing multithreaded teams can still be troublesome.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12097 a95241bf-73f2-0310-859d-f6bbb57e9c96
explicitely when needed.
* Added a ToDo item to _user_resize_area().
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12095 a95241bf-73f2-0310-859d-f6bbb57e9c96
objects/ tree, so that it doesn't clash with others (those should be
fixed, too). gdb is (or will be, as soon as I check it in) using this
version, too.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12081 a95241bf-73f2-0310-859d-f6bbb57e9c96