Commit Graph

51931 Commits

Author SHA1 Message Date
Rene Gollent a5ce4678c0 Debugger: Implement conditional breakpoints.
ThreadHandler:
- When a breakpoint event is hit, we now check if there is an
  associated UserBreakpoint with a condition attached. If so,
  we schedule an evaluation request, and only stop the thread if
  that one evaluates to true (or if evaluation fails in some way).

This implements #9713.
2014-10-30 16:54:33 -04:00
Rene Gollent 43060a58fa Debugger: Minor tweak to ExpressionEvaluationJob.
- ExpressionEvaluationJob now stores the final result value,
  and provides an accessor to it.
2014-10-30 16:54:32 -04:00
Rene Gollent 942226c711 Debugger: Add UI for configuring breakpoint conditions.
General:
- Add message codes for requesting breakpoint configuration.

UserInterfaceListener/TeamDebugger:
- Add/implement hooks for requesting breakpoint condition changes.

BreakpointsView:
- Add button to request editing the currently selected breakpoint's
  condition.

TeamWindow:
- Handle request to show breakpoint edit window.

BreakpointEditWindow:
- Implement simple radio-based UI for modifying the current breakpoint's
  condition.

Still missing: Actually handling/evaluating the breakpoint conditions in
the ThreadHandler when the breakpoint is hit.
2014-10-30 16:54:31 -04:00
Rene Gollent 3dfdc98cd1 Debugger: Show breakpoint conditions in list view.
- Adjust breakpoint table and model to also show breakpoint conditions,
  if set.
2014-10-30 16:54:31 -04:00
Rene Gollent 65a10b5000 Debugger: Add condition expression member to UserBreakpoint.
- UserBreakpoint and its corresponding settings classes now
  store/recall an optional condition expression.
2014-10-30 16:54:30 -04:00
Rene Gollent 854b341612 Debugger: Minor tweak to expression window.
- If the expression result is an integer, display it in both hex and decimal
  format.
2014-10-30 16:54:29 -04:00
Adrien Destugues a13654e089 Network: add field for setting the domain. 2014-10-30 21:24:23 +01:00
Adrien Destugues 8aaad21dea Change the new net preflet mimetype to match the old one
This lets NetworkStatus and possibly other apps find it again.
2014-10-30 19:52:43 +01:00
Ingo Weinhold 96a321df07 bootstrap image: Add remote command execution script
In order to automate the complete bootstrap build process we need a
mechanism to control the second phase which builds the final packages
on the booted bootstrap Haiku. To avoid additional dependencies
(buildbot slave, ssh, rsh,...) we'd have to cross-build, there's now a
pair of simple python scripts that allows executing commands on a remote
machine. The server script (bootstrap_daemon.py) is added to the
bootstrap image and started automatically during the boot.
2014-10-30 16:43:54 +01:00
Adrien Destugues c00e34900a Network: 64bit fix. 2014-10-30 16:15:25 +01:00
Adrien Destugues 1508dc5c41 network prefs: fix jamfiles and include into image.
* There are some rough edges, but the functions from the existing
preflet are all available now.
2014-10-30 15:49:08 +01:00
Adrien Destugues a0c8a64b47 Move the new network preflet at the right place. 2014-10-30 15:49:07 +01:00
Adrien Destugues 446094bcb3 Implement saving DNS server list.
This makes the preflet good enough for replacing the current one.
2014-10-30 15:49:05 +01:00
Rene Gollent 5cd3ae7c0d Debugger: Implement member dereferencing in expressions.
CLanguageExpressionEvaluator:
- Add tokenizer handling for operators . and ->.
- Rework _ParseIdentifier() to work recursively if it sees a deref
  operator immediately following the current token. This allows
  one to refer to the value of structure/class members in an
  expression.
2014-10-30 09:55:08 -04:00
Adrien Destugues 824404e31f NetworkSetup: add the Services tab
* UI still needs some tweaking
* The Services tab has a list of services. This currently include DNS
and will soon also include the services listed in xinetd.
* The DNS tab allows to manage DNS servers (settings can't be saved yet)
2014-10-30 11:27:38 +01:00
Jessica Hamilton 0cf2423cbf Update gcc devtools for x86 on gcc2 to btrev43095 2014-10-30 23:03:32 +13:00
Automatic Committer e8d0b3ceee Update pci.ids from pciids.sourceforge.net 2014-10-30 05:20:25 +01:00
Rene Gollent d0c118a6dc Debugger: More work on expression variables.
- If the current frame belongs to a class function, and the requested name
  doesn't match that of any of the parameters/local variables, attempt to
  find it in the member list as well.
2014-10-29 22:48:19 -04:00
Michael Lotz 00460996cf btreeTest: Change include for debug helpers.
Including BPlusTree.h pulls in the common versions of the debug macros
(via the Debug.h from BFS) and therefore avoids redefinition warnings.
2014-10-30 00:42:50 +01:00
Michael Lotz 64bb360b8c btreeTest: Remove equal sign from preinclude argument.
No separator at all (no space and no equal sign) seems to be the only
version that is accepted by both GCC versions.
2014-10-30 00:42:50 +01:00
Oliver Tappe b9c8e3de1b string.h: include strings.h for compatibility.
* Partly reverting hrev47655, as the moved declarations are expected
  by many ports to be accessable via string.h. 
  Following standards is a good thing in general, but not if it causes 
  more problems than it helps ...
2014-10-30 00:20:13 +01:00
Michael Lotz 488289a4a9 btreeTest: Fix build with gcc2. 2014-10-29 23:47:37 +01:00
Michael Lotz f65b805f6f Fix build of intel partitioning add-on by building its own MBR.
It previously shared the same generated MBR header with bin/writembr,
but they have incompatible needs. The intel partitioning add-on only
wants the MBR code, while writembr wants the whole sector.

Build the desired version of the MBR separately for each target instead
of sharing a single header.
2014-10-29 23:29:18 +01:00
Adrien Destugues 524709ea2b Avoid space after -include.
This seems to make cpp unhappy. Note that other fixes seems to be needed
to get the build running with gcc2 (missing includes and the like.)
2014-10-29 23:19:49 +01:00
Adrien Destugues 920be2076f Re-enable raw audio ffmpeg output. 2014-10-29 23:19:48 +01:00
Michael Lotz a264790727 writembr: Fix too short MBR due to wrong compile flags.
The compile flags were set so that only the boot code itself would be
produced, excluding the (dummy) partition table and signature. The code
in writembr still assumed that the MBR would be 512 bytes however and
therefore access the data array out of bounds.

Fix flags to produce the full 512 byte MBR sector and add a
STATIC_ASSERT so that the size assumption is checked on compilation.

Also fix a typo in mbr.nasm, mostly to trigger re-generation of the
MBR data that one would otherwise need to remove manually...

The two out of bounds array accesses were pointed out by CID 1249923 and
CID 1249924, the insufficiently large target buffer of the memcpy by
CID 1249901.
2014-10-29 22:49:55 +01:00
Rene Gollent c3f81329bb Debugger: Implement expression variable value resolution.
General:
- Resolving variable values requires both a stack frame and a CPU state.
  Adjust all interfaces and callers accordingly.

ExpressionEvaluationJob:
- Pass additional parameters needed for variable value resolution.
- If variable resolution is desired, ExpressionEvaluationJob now
  creates a temporary ValueNodeManager for that purpose.
- If the expression parser returns a value node pointer that needs
  to be resolved, schedule a corresponding job and wait.

CLanguageExpressionEvaluator:
- Clean up some leftovers that were preventing variable names from being
  handled properly in some cases.
- Implement handling of identifier names. These are now looked up against
  the value node graph of the active node manager, and if found, corresponding
  values are retrieved. If the value has not yet been resolved, an exception
  is thrown to ask that to be done.

This gets value resolution working for basic local variables and function
parameters, and consequently, #9712. Structure/class members and/or pointer
indirection aren't yet handled.
2014-10-29 17:41:54 -04:00
Adrien Destugues de6278fec1 NetworkSetup: move renegociate and disable buttons to HardwareView
The idea is making the interface list a generic list to add some stuff
that are not interfaces there (ie services: DNS, FTP, SSH, ...)
2014-10-29 22:22:16 +01:00
Adrien Destugues afc5d438a7 Add an app server test for stack&tile
Should help with debugging #8569.
2014-10-29 22:22:15 +01:00
Ingo Weinhold dfb13a8716 Increase the size of the kernel FD table
With packagefs potentially opening quite a few packages the default of
256 slots is a bit tight. It's 4096 now, which should be safe for a
while, but we might want to consider resizing the table dynamically and
probably even switching to another algorithm for allocating the slots.

Should fix #11328.
2014-10-29 21:07:03 +01:00
Ingo Weinhold 6bbd25f071 Make vfs_resize_fd_table() accessible in the kernel
Also update some types from int to uint32.
2014-10-29 21:07:02 +01:00
Rene Gollent f9f19f0246 Debugger: Fix CID 1249931.
- Add missing field to initializer list.
2014-10-29 12:30:59 -04:00
Rene Gollent 2e37350e9d Debugger: Fix CID 1249932.
- Add missing member fields to initialization list.
2014-10-29 12:28:37 -04:00
Rene Gollent af79919aa9 Debugger: Adapt CliDumpMemoryCommand to new expression interface.
- CliDumpMemoryCommand now requests asynchronous expression evaluation
  like the other users of expressions.
2014-10-29 11:54:14 -04:00
Rene Gollent 382587517f Debugger: Add expression support to CliContext.
- Extend CliContext::Event to be able to store expression
  event results.
- Extend CliContext to watch for team expression events and
  handle them accordingly.
2014-10-29 11:54:13 -04:00
Ingo Weinhold 53aae3db4d packagefs: Package::Open(): Also log error code 2014-10-29 16:06:01 +01:00
Rene Gollent fdb2d5d961 Debugger: Adapt expression eval users to async interface.
Factor out message constant for expression evaluation completion,
as multiple places will be using that.

ExpressionEvaluationWindow:
- Check for expression match immediately in listener hook, and
  don't bother dispatching to the message loop in such a case.
  Simplifies some of the other code.

InspectorWindow / WatchPromptWindow:
- Rather than attempting to evaluate an expression directly,
  we now defer to the async interface. Clean up and adjust accordingly.

TeamWindow:
- Adjust window creation calls due to parameter changes.

This leaves only the CLI dump memory command to be adapted.
2014-10-29 10:52:50 -04:00
François Revol 7c5dfbad75 bootman: Fix warnings
warning: label alone on a line without a colon might be in error

Doesn't change the produced binary.
2014-10-29 12:52:41 +01:00
François Revol 74a14969ec bootman: fix warning
macro `SECTION' exists, but not taking 0 parameters
2014-10-29 12:52:41 +01:00
Ingo Weinhold 7ca277b9ca vm_soft_fault(): remove unused wiredRange parameter 2014-10-29 12:37:25 +01:00
Ingo Weinhold 078a965f65 vm_soft_fault(): Avoid deadlock waiting for wired ranges
* VMArea::AddWaiterIfWired(): Replace the ignoreRange argument by a
flags argument and introduce (currently only) flag
IGNORE_WRITE_WIRED_RANGES. If specified, ranges wired for writing
are ignored. Ignoring just a single specified range doesn't cut it
in vm_soft_fault(), and there aren't any other users of that feature.
* vm_soft_fault(): When having to unmap a page of a lower cache, this
page cannot be wired for writing. So we can safely ignore all
writed-wired ranges, instead of just our own. We even have to do that
in case there's another thread that concurrently tries to write-wire
the same page, since otherwise we'd deadlock waiting for each other.
2014-10-29 12:37:25 +01:00
François Revol cf3c703b7a Typo 2014-10-29 11:55:32 +01:00
Adrien Destugues 57810fe9e0 Sounds: zoom to fit instead of going fullscreen.
Fixes #5588.
2014-10-29 10:55:04 +01:00
Adrien Destugues 3a8e734bdd Sounds: make private methods private. 2014-10-29 10:20:46 +01:00
Adrien Destugues c54aa3df3f Sounds: rework layout of window
* Remove useless BBox
* Use unicode symbols for play/stop buttons instead of a label
* Since the buttons are smaller, put them on the same line as the file
selector.
2014-10-29 10:03:11 +01:00
Adrien Destugues f26118f286 Change error code for already mounted partition to B_BAD_VALUE.
As Axel pointed out, B_BAD_DATA is not the correct code here. B_BUSY
could be used but I wantd a code different from the existing one for
"partition already being initialized".
2014-10-29 08:44:52 +01:00
Rene Gollent d1ae01d79b Debugger: Use async request in expression window.
- ExpressionEvaluationWindow now uses the aforementioned
  request interface to ask the debugger core to perform evaluation
  on its behalf, rather than doing so itself directly.

The remaining users of the expression evaluator will be adjusted in
following commits.
2014-10-28 23:30:02 -04:00
Rene Gollent 2d5794a1a3 Debugger: Add asynchronous expression evaluation interface.
- Add UserInterfaceListener hook to request expression evaluation.
- Add corresponding events/handlers in Team and TeamDebugger.

These allow callers to request evaluation of expressions by the
debugger core's worker threads with asynchronous notifications of
results. While not strictly necessary right now, this paves the way
for further changes to come, as handling of variables will
potentially require resolving their values if they haven't been
already, and this shouldn't be done from user interface threads.
2014-10-28 23:30:01 -04:00
Rene Gollent feab8604c9 Debugger: Add job for expression evaluation. 2014-10-28 23:23:26 -04:00
Rene Gollent 5ac34e5a78 Debugger: Add missing team lock in DebugReportGenerator. 2014-10-28 23:23:25 -04:00