Commit Graph

45828 Commits

Author SHA1 Message Date
Rene Gollent d51ab41d49 Fix oversight in set visible range support.
Detect the case where we have a pointer to an array type, as seen
when typecasting a pointer to an array, and present the set visible
range option for these as well.
2013-05-17 22:06:04 -04:00
Rene Gollent c05a041eac Add Type column to VariablesView. Resolves #9779. 2013-05-17 20:43:10 -04:00
Rene Gollent c81a7bda64 Refactor DIE name resolution.
Factor out DwarfUtils::GetDIETypeName(). Make use of it for both
Subprogram parameters and modified types in general. Resolves TODO.
2013-05-17 20:43:09 -04:00
Rene Gollent d1a797e6cd Add context action to open source file to SourceView.
Implements #9776.
2013-05-17 19:59:35 -04:00
Rene Gollent ed6d6081c1 Implement "Set next statement".
Adds a context menu command allowing the user to specify that the active
thread should be set to execute the specified statement next, by
updating its instruction pointer. Implements second part of #9709.

Note that care needs to be taken with this feature for now, as it
doesn't yet sanity check the requested address. Setting the target
to e.g. a statement in an entirely different function is likely to have
unpredictable/unstable effects on the debugged program.
2013-05-16 22:44:37 -04:00
Rene Gollent c21b8ec703 Extend DebuggerInterface.
- Factor out an _GetDebugCpuState() call to share between
{Get,Set}CpuState().

- Add SetCpuState() which allows to update the state of a given thread.
2013-05-16 22:22:48 -04:00
Rene Gollent 93b54e54a4 Add MSG_THREAD_SET_ADDRESS and implement handling. 2013-05-16 22:22:47 -04:00
Rene Gollent fe3e87c2a8 Extend CpuState interface.
- Add SetInstructionPointer() to allow an outside updates.
- Add Clone() to request a duplicate of the current state object.
- Add UpdateDebugState() to take a debug cpu state structure matching
the current architecture and update its registers with the values from
the cpu state object.
2013-05-16 22:22:45 -04:00
Jérôme Duval 21f6b3ea28 agp_gart: switch to phys_addr_t as suggested by Urias and Axel.
* this is a follow-up to hrev45621
2013-05-16 19:01:33 +02:00
Rene Gollent 3938bea1dc Rework source path parsing.
- As we parse the image's function list, we now track the last source
file we encountered. If it's the first time we encounter the current
file, we parse its source path components up front and then simply walk
the parsed list in order to add the function to its appropriate place in
the model, rather than the previous recursive approach.  This allows us
to reuse the parsed component list for subsequent functions in the same
source file rather than having to reparse the path on every iteration.

- Refactor GetFunctionPath() to make use of the new
_GetSourcePathComponents() parsing function.

Should further improve the time needed to change the active image.
2013-05-15 21:10:57 -04:00
Rene Gollent 66b86c6aee ImageFunctionsView: Switch back to NotifyNodesRemoved(). 2013-05-15 20:18:05 -04:00
Rene Gollent 5d8c967fac VariablesView: Switch back to NotifyNodesRemoved(). 2013-05-15 20:18:05 -04:00
Rene Gollent 1d897b8a54 Remove NotifyNodesCleared() again.
- For various reasons this one can be error prone, since it relies on
the model being able to provide the correct row count, which won't be
the case if the subclass calls it after having already removed all its
nodes.

- Optimize Table's RowsRemoved() similarly to TreeTable's for the remove
all rows case.
2013-05-15 20:18:04 -04:00
John Scipione 01636e8f2a Adjust menu field's menu bar height in auto mode
On IRC diver pointed out to me that KeymapSwitcher had a menu field that
was drawing as just a line since my recent change to BMenuField. I did a
little research and discovered that this was because the menu field in
KeymapSwitch was not using the layout APIs and it's frame rect was set to
0 height.

I did a little more research and experimented with menu fields in
BeOS R5. I discovered that in R5 if the menu field is set to auto-size
mode then the menu bar inside ignores the height of the menu field frame
and uses the BMenuBar's preferred height instead.

So, I adjusted the BMenuField code in Haiku accordingly. This should make
Haiku match the behavior of BeOS R5 in auto-size mode. For fixed-size mode
it should also work the same, although some more testing is needed to
see if there are any regressions there.
2013-05-15 20:05:38 -04:00
Rene Gollent ad6158096c VariablesView: Use Notify{NodesCleared,TableModelReset}(). 2013-05-15 19:22:25 -04:00
Rene Gollent f3bf3eb0d4 Cleanups/optimizations for ImageFunctionsView.
- Get rid of the functions array as we no longer really needed it except
to sift duplicates. The latter function is now done simply by keeping a
set of already seen function addresses, and skipping entries which fall
in said category.

- Use NotifyNodesCleared()/NotifyTableModelReset() as appropriate.

- Remove now-unused sorting functions.

Combined, these changes significantly reduce the overhead of switching
the active image, which was produced observable lag when either choosing
another image in the Images list, or when stepping into/out of a
function resulted in an image change.
2013-05-15 19:22:24 -04:00
Rene Gollent 6132f7b96d Extend Table/TreeTable's interface.
- Add NotifyNodesCleared() hook to table model as a shortcut for
removing all rows.

- TreeTable::_RemoveChildRows() now recognizes the special case of the
above and optimizes it by calling BColumnListView::Clear() rather than
removing each row individually.

- Add TableModelReset()/NotifyTableModelReset(). This notification is
used to tell the underlying table that a full rebuild is needed due to
the model changing completely.
2013-05-15 19:22:23 -04:00
Philippe Houdoin 89e83cf613 Style cleanup and fix a possible endless loop 2013-05-15 19:46:30 +02:00
Philippe Houdoin 44908fe8c5 if_nameindex() wasn't retrieving interface index. Fixed #9770 2013-05-15 08:40:31 +02:00
John Scipione 7aae876a79 Terminal: Move secondary windows back in screen
For the Window title and tab title edit windows there was already code used to
move a window that had gone out of the screen frame back in.

I generalized this code by turning it into a _MoveWindowInScreen() method
and then called it in 3 places, the original 2 cases as well as the Find window.
We might want to move this method into BWindow if this is something we'd like
to use it for windows in other applications, but this solves the problem in Terminal
for now.
2013-05-14 19:53:31 -04:00
John Scipione a2575bd8da Terminal style fix, spaces around binary operator 2013-05-14 19:53:31 -04:00
Pawel Dziepak 5d0a1da8bf libroot: make all areas executable for old binaries
* If at least one image is either B_HAIKU_ABI_GCC_2_ANCIENT or
   B_HAIKU_ABI_GCC_2_BEOS almost all areas are marked as executable.
 * B_EXECUTE_AREA and B_STACK_AREA are made public. The former is enforced since
   the introduction of DEP and apps need it to correctly set area protection.
   The latter is currently needed only to recognize stack areas and fix their
   protection in compatibility mode, but may also be useful if an app wants
   to use sigaltstack from POSIX API.
2013-05-15 00:06:39 +02:00
John Scipione 37848383ca Terminal: Center Find window in term window frame
... instead of positioning it under the mouse pointer as suggested
by Axel.
2013-05-14 17:38:17 -04:00
Axel Dörfler 90f195890f bfsinfo: Added double indirect block output. 2013-05-14 22:47:48 +02:00
ahenriksson c9e66680b9 Incorrect checking of already set double indirect blocks
Wrong variable usage in inner loop caused some double indirect stream
runs to be checked twice when block size was smaller than
DOUBLE_INDIRECT_ARRAY_SIZE, while some were incorrectly marked as
unallocated in the bitmap.

Signed-off-by: Axel Dörfler <axeld@pinc-software.de>
2013-05-14 22:13:50 +02:00
Rene Gollent d2be966d2b Improve ProcessController<->Debugger integration.
- Clicking on a team item in Threads and CPU Usage now offers the option
  to debug the team in addition to killing it.
- Both the aforementioned option and the previously existing thread
  debugging option now invoke Debugger directly instead of simply
  invoking debug_server via debug_thread().

Implements #9768.
2013-05-13 21:38:33 -04:00
Jerome Duval af5255598c <build>linkcatkeys was failing to run on Haiku r1a4 correctly.
* linking against the host libbe.so which could also contain classes
like DefaultCatalog seems to let the runtime_loader in trouble.
* as a workaround we rename the class.
2013-05-13 23:07:32 +02:00
Jerome Duval 7aa197e396 libbe.so catalog: fixed headers search.
* use SEARCH_SOURCE instead of SEARCH, it's also used for headers search
* add print to UsePrivateHeaders, needed for pr_server.h
2013-05-13 23:07:30 +02:00
Jerome Duval 1183fb71ae LocaleRules: define includesSeparator 2013-05-13 23:07:28 +02:00
Jerome Duval 1ef6da4ec3 update GCC4 package to gcc-4.7.3-haiku-130513
* based on btrev43058.
2013-05-13 19:25:19 +02:00
Jerome Duval b531a88645 HaikuImage: alphabetically order system apps. 2013-05-13 17:52:49 +02:00
Rene Gollent 5339366680 Fix gcc2 build. 2013-05-12 22:17:52 -04:00
Rene Gollent 42d73abab9 Add "Run to cursor" context action.
- UserInterfaceListener/TeamDebugger: Extend ThreadActionRequested()
  to allow passing a target address. Adjust TeamDebugger's
  implementation accordingly.

- ThreadHandler: The MSG_THREAD_RUN action can now optionally take an
  address parameter to run until. If this is specified, set a temporary
  breakpoint for said address before resuming execution.

- SourceView: On right click, present a context menu showing possible
  actions for the current line if we're currently in a stopped thread.
  For the moment, this only yields the "Run to cursor" action, but
  more will be added in the future.
2013-05-12 16:03:47 -04:00
Rene Gollent 7a361a7a19 Fix incorrect use of ObjectDeleter. 2013-05-12 16:03:46 -04:00
Axel Dörfler c895d331c9 app_server: added an ASSERT to Desktop::_Windows().
* So that something like #9595 should not happen again.
2013-05-12 21:05:05 +02:00
Jérôme Duval e431f22875 playground: fixes a 64 bit warning. 2013-05-12 18:46:43 +02:00
Jérôme Duval bb4537c841 JPEGTranslator: fixes a 64 bit warning 2013-05-12 18:45:12 +02:00
Ingo Weinhold 78a1163c7b Terminal: hyper link mode: Try more aggressively to detect a path
Consider ':' a potential path delimiter and try all combinations of
chopped off prefixes and suffixes. This makes detection in the output
of a multi-file grep work even if the found line starts with a path
character or is a path. A path in the typical colon delimited search
paths (e.g. PATH) is detected as well.
2013-05-12 17:18:47 +02:00
Ingo Weinhold a15966b3b0 Terminal: hyper link mode: handle relative paths better
* We were trying relative paths as is, which means checking them with
  Terminal's current working directory. Now we use the CWD of the active
  process.
* In case the path is relative, add a context menu item "Copy absolute
  path".
2013-05-12 17:18:18 +02:00
Ingo Weinhold 7daf375812 Terminal: HyperLink: Remove base address, add text property
* The base address is no longer used (it was in a an earlier, never
  committed version), so we can as remove it.
* Introduce a text property.
2013-05-12 17:18:18 +02:00
Rene Gollent 3f3ade6223 Fix incorrect return value problem in STEP_OUT.
A similar problem to that described in my previous commit afflicted the
step out case as well. We now store the current IP when issuing a step
out, and use that as the function address once execution returns.
2013-05-11 19:08:09 -04:00
Rene Gollent d9d42ec6bf Fix case of incorrect return value detection.
When using step over to step out of a function, we need to use the
address range of the step statement to determine the function which
returned said value, not the current IP, as that has already exited the
function and will consequently be that of the caller, leading to such
returns being attributed to the wrong function, and consequently also
the wrong type.
2013-05-11 18:48:29 -04:00
Rene Gollent 88cc420211 Improve basic profiler output a little.
If on gcc4, use the built-in demangling functions to present demangled
names in the output where possible.
2013-05-11 16:46:15 -04:00
Jérôme Duval c4f684f80f Style fix as suggested by Axel :) 2013-05-11 22:20:57 +02:00
Axel Dörfler 4b723e3fb8 boot loader: Almost removed use of kernel_cpp.h.
* For some reason that is beyond me, fat/CachedBlock.cpp needs this header,
  or else building the boot loader fails.
2013-05-11 19:34:22 +02:00
Jerome Duval c3e68d8d92 cdda, fat, iso9660: clear tv_nsecs fields in the stat struct
* devfs in fact doesn't provide a zeroed buffer.
2013-05-11 14:58:58 +02:00
Gediminas Jarulaitis a3fdd62c13 iso9960, exfat, fat: Corrected time conversion mistakes.
* Fixes #9524
* Some style cleanup

Signed-off-by: Jerome Duval <jerome.duval@gmail.com>
2013-05-11 14:58:57 +02:00
Alex Smith 1152f6eca6 HaikuImage: Build more network drivers for x86_64. 2013-05-11 13:08:35 +01:00
Murai Takashi 6235280425 libgnu.so: Fix GCC4.8 narrowing conversion warnings
Signed-off-by: Jerome Duval <jerome.duval@gmail.com>
2013-05-11 09:02:01 +02:00
Ingo Weinhold 9e1a0720cb Fix FFM focus loss on window close
kFocusList is an invalid index for _Windows(). fWorkspaces would be
accessed out of bounds.
2013-05-11 07:30:15 +02:00