invoke_debugger_command() is now automatically preceded by
"usage: <command name>", so the string passed to
add_debugger_command_etc() shouldn't contain it anymore.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23584 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Put cookies and error stuff to toscalls.c.
* dump all cookies instead of fixed list.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23582 a95241bf-73f2-0310-859d-f6bbb57e9c96
before releasing our cache reference. Otherwise removing a vnode (triggered
by releasing the cache in our thread) could need pages we still own.
* Put the caches and pages into a union to save stack space; they are not
needed at the same time.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23580 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Removed ID 0x0141 for the FX 6600 as well until it's fixed, see ticket #1530
for details.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23579 a95241bf-73f2-0310-859d-f6bbb57e9c96
add_debugger_command(), but additionally takes parameters "usage"
and "flags".
* Added add_debugger_command_alias() which creates another name for an
existing command.
* Added print_debugger_command_usage() to print a command's usage.
* invoke_debugger_command() intercepts invocations with "--help" and
prints the command's usage text, if it is known. If unknown, the
command will be called normally.
* Made use of the new functions in debug.cpp.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23573 a95241bf-73f2-0310-859d-f6bbb57e9c96
a command is executed anymore. Instead the least recently used
temporary variable is overwritten, if there's no free slot for a new
temporary variable.
* Removed the special handling for the command result variable ("_"). It
just works like any other temporary variable, now.
* Individual temporary variables can be removed (e.g. using the "unset"
command).
* Added unset_all_debug_variables() and "unset_all" command to unset
all persistent and temporary variables.
* Removed remove_all_temporary_debug_variables and renamed
remove_debug_variable() to unset_debug_variable().
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23568 a95241bf-73f2-0310-859d-f6bbb57e9c96
(so we can't allocate more physical pages than virtual address space
anymore, but so what?).
* Used the new CACHE_LARGE_SLAB flag as a temporary work-around; else
the slab would easily create several thousands of areas, which our
area code (and kernel heap) can't really handle that well (gets
awfully slow).
* Block caches with the same size could share the same slab, but we
don't do that yet.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23567 a95241bf-73f2-0310-859d-f6bbb57e9c96
paging support to KDL (but not the on-screen debug output for now).
* Defaults to "on", use the new "paging" KDL command to turn it off (or on
again).
* When pressing 'q' while it is waiting for a key, it will now eat the rest
of the commands output (helpful for slow screen output of a large data set).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23566 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Fixed the usage text of the "help" KDL command.
* Made the "ambiguous command" warning shorter, so that it will still fit in
the exception buffer.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23565 a95241bf-73f2-0310-859d-f6bbb57e9c96
* As a temporary work-around for the current slab allocator's area usage,
I added the CACHE_LARGE_SLAB flag, which will force the allocator to
use larger areas.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23564 a95241bf-73f2-0310-859d-f6bbb57e9c96
value greater or equal its size (actually untested, but at least Haiku
still boots with these changes :-)).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23563 a95241bf-73f2-0310-859d-f6bbb57e9c96
MainWindow::_Initialize()... setting the name and block size should work,
though I have not tested this yet due to lack of available partitions.
TODO: Use driver settings API from libroot to build the parameter string
and move the GUI of the InitParamsPanel into the BFS add-on, implement
BPartition::GetInitializationParameterEditor() accordingly.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23561 a95241bf-73f2-0310-859d-f6bbb57e9c96
in the critical error handler. In the high level function, the jmp_buf is
now allocated on the stack and placed in the "cinfo->err" structure. This
should make the mechanism thread-safe. Unfortunately, we don't use the
original libjpeg anymore as is, but this seems to be frozen code since a
few years anyways. If you have any better suggestions, please don't
hesitate to mention them! :-)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23560 a95241bf-73f2-0310-859d-f6bbb57e9c96
that only loads bitmaps and is supposed to return a status_t error from
the Translate() function, especially for people using this in mission
critical applications.
The requirements on the error handler that is
to be installed for the jpeg library are not to return to the calling
function for critical errors. C++ exceptions seem like the
natural solution to the problem, but unfortunately, they simply don't
seem to work, possibly because we are inside an add-on. Ingo had the idea
to use setjmp() and longjmp() to go directly from the error handler back
to the top level code and this works. I have implemented this from what
I understand from reading the opengroup spec, but the compiler currently
issues a warning. Feel free to fix. The desired effects are achieved though,
the translator recovers correctly from broken jpg files now.
Also, I don't know if the translator should somehow "uninstall" the
breakpoint. Again, feel free to fix or tell me.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23559 a95241bf-73f2-0310-859d-f6bbb57e9c96
cleanup thread, since, not being attached to the window, Window()
returned NULL. Now CustomTermView::NotifyQuit() accounts for this, and
sends the message to the first window in the BApplication. Moreover,
RemoveTab() would always remove the currently selected tab, and not the
requested one.
Changed a printf() to fprintf().
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23558 a95241bf-73f2-0310-859d-f6bbb57e9c96
worked). Fixed. Also moved handling of default shell command from
TermView to Shell, where it belongs.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23557 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Added some temporary variables to the commands.
* Use parse_expression() where appropriate.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23556 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Fixed removing temporary variables (they would always be removed except one
after the first command).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23555 a95241bf-73f2-0310-859d-f6bbb57e9c96
Now starts doing stuff in the loader when bootstrapping the .prg from ARAnyM.
For now it just dumps the cookies.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23552 a95241bf-73f2-0310-859d-f6bbb57e9c96
debugger expression language. By default it reads a uint32 value.
Another target size (1, 2, 4, or 8 bytes) can be specified in braces
after the "*" (e.g. "*{2}address" for uint16).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23551 a95241bf-73f2-0310-859d-f6bbb57e9c96
* The kernel debugger does now define some temporary variables when
entered (current thread and team, etc.).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23549 a95241bf-73f2-0310-859d-f6bbb57e9c96
password window is now font sensitiv, can be seen as part of ticket #705
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23547 a95241bf-73f2-0310-859d-f6bbb57e9c96
that is a little more powerful than BeOS'. It features:
- Persistent and temporary uint64 variables. The former kind is set
only by the user. The latter (those prefixed "_") can be set
automatically by commands, thus e.g. making it easier to access
members of a dumped structure. They are unset when the next command
is invoked. The special temporary variable "_" is defined as a
command's return value.
- Expressions can contain nested command invocations using brackets
("[ ... ]").
- Command lines are parsed by the expression parser, too. They can
contain command invocations (in brackets) and expressions (in
parentheses).
* Added debugger commands:
- expr: Evaluates the given expression and prints the result.
- unset: Undefines a variable.
- vars: Prints the values of all defined variables.
* Moved debugger command code into its own source file.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23546 a95241bf-73f2-0310-859d-f6bbb57e9c96
* sort the partitions by id (TODO: should be disk offset, but works as
intended now)
* expand the partition tree entries by default
* renamed DriveVisitor to ListPopulatorVisitor, moved implementation into
class definition
* added MountAllVisitor and used it to implement according menu item
* added menu item members to MainWindow, so it keeps the pointers
* added MainWindow::_EnabledDisableMenuItems() which looks for the
current disk and partition and their properties to en-/disable the items
* moved BDiskDevice member from DiskView to MainWindow, renamed to
fCurrentDisk
* implemented mounting and unmounting the currently selected partition,
mounting works, unmounting does not work as in Tracker, but the error
description is not as helpful, or just as helpful, since Force Unmount
does not work in Tracker at the moment
* implemented initializing the selected partition, not tested to the end,
but likely works, so beware! (TODO: finish the parameter window and use it,
partitions are hardcoded to "BFS Init Test" and 2048 blocksize). The
process displays a warning at the beginning and another one at the end
before writing anything to disk, but please do take it seriously... :-)
* store and restore the listview column settings (width of columns mostly)
* more appropriate usage of the BDiskDeviceRoster API
* improved DiskView display a little with frames and more contrast in the
colors
* implemented FrameResized() to adapt the box layout
* no longer pass disk pointer to BDiskDeviceRoster::VisitEachPartition(),
since it will overwrite it!
* no longer use BDiskDeviceRoster at all, BPartition::VisitEachDescendant()
is what we need
* added a WIP InitParamsPanel, does not compile, but is not added to the
Jamfile yet, it will be a blocking panel like a BAlert and will later
be refactored into the parameter editor add-on for BFS
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23545 a95241bf-73f2-0310-859d-f6bbb57e9c96
the root of the source tree. Added a work-around that should fix the
problem.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23544 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Made the block_cache KDL command dump a bit more useful info (number of
referenced and dirty blocks).
* Minor cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23540 a95241bf-73f2-0310-859d-f6bbb57e9c96
* with 1 GB or more, the semaphore limit is now 131072 instead of 65536.
* double the heap when there is 1 GB or more (64 MB).
* the low memory handler now also watches semaphore usage; in the end,
we need a low resource handler, not a low memory handler.
* create_sem_etc() no longer calls vfs_free_unused_vnodes() directly as
this could actually deadlock (at least because the address space is a
R/W lock, not a recursive lock).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23538 a95241bf-73f2-0310-859d-f6bbb57e9c96