3175 Commits

Author SHA1 Message Date
Ingo Weinhold
8d716cdba3 Added support for several variable and lexical block entry attributes and
child handling for lexical blocks (at least for nesting and variables).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31646 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-20 01:05:10 +00:00
Ingo Weinhold
502fcbcc5b Added Contains() method.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31645 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-20 01:03:02 +00:00
Ingo Weinhold
da4d62db94 * Worker:
- Made Job Referenceable.
  - Turned JobKey into an abstract base class to add flexibility. The new
    SimpleJobKey is a subclass with the former functionality.
* TeamWindow: Removed the TeamWindow* parameter from the listener hooks. The
  TeamDebugger knows anyway.
* Added IDs to Variable, Function, and FunctionInstance. The latter two generate
  the ID on the fly, Variable stores it.
* SpecificImageDebugInfo::CreateFrame(): Changed FunctionDebugInfo* debug
  parameter to FunctionInstance* to provide more info (the function ID).
* DwarfInterfaceFactory/DwarfImageDebugInfo:
  - Added class DwarfFunctionParameterID, an ID class implementation for
    function parameters and set the IDs on the parameter objects.
  - Retrieve the size of a type (i.e. the size of its objects) and store it in
    DwarfType.
  - If a parameter's ValueLocation doesn't have a size, set that of the
    respective type.
  - Map the register indicies in the parameters' ValueLocations from DWARF to
    our indices.
* Added class TypeComponentPath for identifying subcomponents in types.
* Added class StackFrameValues, a container associating variables and their
  subcomponents with values.
* StackFrame does now have a StackFrameValues object for parameters and local
  variables and a mechanism to notify listeners when values have been retrieved.
* Added GetStackFrameValueJob to retrieve variable values. Lots of functionality
  is missing yet. Most notably it doesn't retrieves values for subcomponents.
* Wired everything to trigger loading of variable values and getting notified
  when done.
* VariablesView: Added a value column. This is all very basic and has to be
  done differently, but at least values for the parameters can be seen already.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31636 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-18 23:52:16 +00:00
Ingo Weinhold
bcbd46eba3 Added SetPieceAt() and Dump() methods.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31635 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-18 23:19:08 +00:00
Ingo Weinhold
f3516af2ca Added AddressSize(), IsBigEndian, IsHostEndian().
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31634 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-18 23:18:06 +00:00
Ingo Weinhold
e3eda50984 Made ByteSize() a virtual method in DIEType and implemented in all subclasses
that potentially have that attribute.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31633 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-18 23:16:51 +00:00
Ingo Weinhold
b312b9ff83 Moved the implementation of ExpressionEvaluationContext. No functional changed.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31632 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-18 23:15:22 +00:00
Ingo Weinhold
81ad27df05 * More debug output.
* Fixed _PushRegister(). It was ignoring the offset.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31631 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-18 23:13:06 +00:00
Ingo Weinhold
d26889cca5 Base classes for IDs for various objects. The idea is to use them to uniquely
identify the respective objects without actually holding a pointer to them.
They will eventually also become persistable which will allow e.g. to associate
(and store) settings with the objects.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31630 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-18 23:11:20 +00:00
Ingo Weinhold
72e9c66b4d Class helping with assembling data from chunks of byte unaligned bit arrays.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31629 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-18 23:06:33 +00:00
Ingo Weinhold
6de84d6d8d Added AddUninitialized(), appending the given number of uninitialized elements.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31628 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-18 23:03:01 +00:00
Rene Gollent
28b5bc6c93 Don't scroll if the mouse pointer is outside the view but still within its y bounds.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31623 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-18 13:38:19 +00:00
Rene Gollent
993611096f gcc2 build fix.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31615 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-17 02:07:36 +00:00
Ingo Weinhold
d315bfd510 * Added class ValueLocation to represent a location of a value on the target
machine.
* DWARF:
  - Various additions to the DIE classes.
  - DwarfExpressionEvaluationContext:
    - Added support for location expressions and thus the missing DW_OP_piece
      and DW_OP_bit_piece operations.
    - Fixed some deviations from the specs.
    - Added debug output.
  - DwarfFile:
    - Added missing evaluation of CFA expression rules.
    - Added service methods to evaluate expressions, location expressions,
      and constant and dynamic values.
* Added model classes for representing types and variables. Particularly the
  types part is not finished yet.
* StackFrame does now contain parameters and local variables.
* Added DwarfInterfaceFactory, which creates implementation objects for the
  types, as well as variables objects. It's even less finished.
* DwarfImageDebugInfo::CreateFrame(): Resolve function parameters and add them
  to the stack frame. No local variables yet.
* Added the beginnings of a variables view. Only lists the names of parameters
  and local variables (of understood types) ATM.
* Renamed RegisterView to RegistersView.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31614 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-17 01:54:43 +00:00
Rene Gollent
ce79a21bd0 Fix bug where going out of the view's range would cause the entire region to be deselected.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31613 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-17 01:28:30 +00:00
Rene Gollent
d2de9de701 Removed SourceView::_VisibleRect() as it was functionally identical to BView::Bounds(). Implemented variable-speed drag scrolling.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31612 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-17 01:22:24 +00:00
Rene Gollent
7084f8b18b Resolve TODO: Implement drag scrolling. Needs to be fine tuned some to allow for variable rate scrolling based on how far outside the view you move the mouse, but works for now.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31611 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-17 00:36:33 +00:00
Stephan Aßmus
36c088531f * Automatic white space cleanup
* Small hack to display at least some frames (one every 15 frames) when the
  CPU is utterly incapable of decoding video fast enough.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31610 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-16 22:20:43 +00:00
Stephan Aßmus
9c0db3445c Patch by Jeroen Oortwijn:
Escape the mount point, so volumes with spaces in their name can be made
bootable after installing. Thanks a lot! Fixes #4063.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31607 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-16 13:47:11 +00:00
Rene Gollent
c0f60e6610 * Fix some calculation errors in FileSourceCode spotted by Ingo.
* if we click in the selection without dragging, clear the selection.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31602 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-16 03:42:44 +00:00
Michael Lotz
63d557f06f Fixing random GCC4 warnings. Mostly missing consts, some parentheses, some braces... Should all be harmless and not change anything.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31600 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-16 02:42:03 +00:00
Ingo Weinhold
d24e0386a3 * Added LocationDescription class.
* Handle DW_AT_location attributes.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31591 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-15 16:49:08 +00:00
Ingo Weinhold
dec24704e1 * Moved the outer dependencies for the expression evaluation into new class
DwarfExpressionEvaluationContext.
* Implemented the remaining operations save DW_OP_piece and DW_OP_bit_piece.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31590 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-15 16:21:33 +00:00
Rene Gollent
3c0955a1ce * Removed no longer needed workaround for mouse wheel messages (thanks Axel!).
* Introduced SourceCode::LineLengthAt(index) and respective implementations in FileSourceCode and DisassembledCode for getting the cached length of the line at the given index.
* Use LineLengthAt in various places in SourceView::TextView to avoid having to calculate string lengths on the fly.
* Clamp the size of the drag and drop rect to the window size. Otherwise in cases of large selections, said rect would get quite large.
* Add support for double click word and triple click line selection.
* Fix problems with tracking state which would erroneously cause the mouse entering the view while dragging on a scroll bar to initiate a drag and drop if there was selected text.
* Add Select All menu/keyboard shortcut and implement corresponding functionality in SourceView::TextView.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31587 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-15 12:52:18 +00:00
Ingo Weinhold
3c33a74c01 Rather resolve range lists lazily. We need them for all functions, but there
are a lot more DIEs that have range lists.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31586 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-15 12:37:56 +00:00
Ingo Weinhold
ca38af4c2b Implemented interpretation of most of the DWARF expression operations. A few
are still missing. And everything is still utterly untested.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31578 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-15 02:12:03 +00:00
Ingo Weinhold
460f6b3e73 Added DwarfTargetInterface::ReadValueFromMemory() version with address
space + address pair.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31577 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-15 02:08:47 +00:00
Ingo Weinhold
ade8662ece Added ReadValueFromMemory() version taking an "address space" + address pair as
used by DWARF. Not needed/supported for x86.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31576 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-15 02:07:42 +00:00
Rene Gollent
0543dd88c7 Forward mouse wheel changes to the parent view so the scroll view can react to them.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31573 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-14 23:11:21 +00:00
Rene Gollent
4890653c13 Small cleanups. Implement drag and dropping the text selection.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31572 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-14 22:57:08 +00:00
Rene Gollent
6c6e9cdb1a Rework copy message dispatching to auto-dispatch to the focus view rather than targetting the textview specifically.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31571 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-14 22:42:15 +00:00
Rene Gollent
9e1a62419e Style fixes and automatic whitespace cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31570 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-14 22:28:35 +00:00
Jérôme Duval
8856fd5fcf Have MediaPlayer supports files with unknown duration:
* Controller: accept streams with unknown duration. 
* PlaybackManager: trusts the current frame start and end when frameCount not positive. Also don't stop playing when fStopPlayingFrame is zero. 
* MediaTrackAudioSupplier: only fills with silent when the frame count is not zero.
* added some traces.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31569 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-14 21:54:45 +00:00
Fredrik Modeen
f8c84871ee Spell fix, thanks Stefano for correcting me.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31567 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-14 20:41:59 +00:00
Fredrik Modeen
05afd3332b * Last check in had an error when you tried to install ProcessController twice.
* Had to change some names so that I didn't use the name tmp or temp :)

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31566 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-14 18:43:22 +00:00
Stephan Aßmus
6da40f2e24 Fixed more bugs with re-layouting when switching clips:
* In full screen mode, make sure to relayout the video view if size and/or
  aspect change. Also adjust the window size limits (for later).
* Add optional code to _ResizeWindow() to make sure the window is fully on
  screen. When it is out on one side, move it back in, when it is too large,
  scale and center it so all the border is visible. This code is used when
  switching clips if not in full screen mode.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31559 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-14 12:50:38 +00:00
Stephan Aßmus
d99b6b083f Make sure the window size limits are always up to date.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31558 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-14 12:09:51 +00:00
Stephan Aßmus
095a1f5b8b Use the usual function keys as shortcuts for stepping. (From memory, hope I got
it right...)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31557 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-14 11:47:50 +00:00
Ryan Leavengood
07587ce238 I have created a new CharacterMap icon, which resurrects a big part Stephan's
great Menu prefs icon. If the extra little "islands" seem extraneous they can be
removed easily. I figured the Yen symbol was an appropriate choice for the main
island.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31552 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-14 06:27:21 +00:00
Ryan Leavengood
b097110bfb According to Stephan the bug I wrote this code for (#1307) is no longer an
issue. Since there may be valid reasons to have part of the media player window
offscreen this code could get annoying. I still think it is pretty though.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31551 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-14 04:36:17 +00:00
Rene Gollent
ab49b58c80 Copy to clipboard now works.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31550 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-14 04:03:12 +00:00
Rene Gollent
8bf1b2d603 * Fix several visual glitches in the selection highlight and selection behavior.
* Highlight the source view to indicate focus.
* Add rudimentary menu bar with quit and copy options (copy not yet working)



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31549 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-14 00:41:59 +00:00
Ingo Weinhold
ab3c00eef3 The beginnings of a DWARF expression evaluator.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31548 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-13 23:54:32 +00:00
Ingo Weinhold
e355492924 Missing include.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31547 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-13 23:53:55 +00:00
Ingo Weinhold
106c4d4020 * Got rid of dwarf_{addr,off,size}_t. Consequently use 64 bit types instead.
* Made the DWARF code fully 64 bit aware (hopefully).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31546 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-13 23:03:36 +00:00
Ingo Weinhold
fd1f509330 Skeleton for source language abstraction. There's SourceLanguage with several
subclasses, though they don't do much yet. SourceCode is now associated with a
SourceLanguage.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31544 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-13 20:45:15 +00:00
Ingo Weinhold
5bf75a6f2b Last minute change that, of course, broke the build.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31543 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-13 20:05:17 +00:00
Stephan Aßmus
9ce9e6e458 Resetting the width/height and aspect all at once in my last commit was buggy.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31542 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-13 20:04:06 +00:00
Stephan Aßmus
f186fa405c * Improvements to the aspect ratio handling. The "Keep Aspect Ratio" setting
is now superfluous.
* When switching aspect ratio and the current video size is 100%, always
  resize such that one side stays at 100% (which would be the height mostly)
  and the other is scaled up (mostly the width).
* In _SetupWindow(), which is triggered by a new stream for example, also
  check if the aspect ratio changed and resize accordingly.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31541 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-13 19:58:07 +00:00
Ingo Weinhold
f7526300d9 * DWARF: Implemented parsing the DWARF frame info and evaluating it (save for
DWARF expressions). Several related new classes: CfaRule[Set], CfaContext,
  DwarfTargetInterface (for accessing target registers and memory).
* Implemented DwarfImageDebugInfo::CreateFrame(), so the DWARF frame info is
  used for unwinding the stack.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31540 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-13 18:54:11 +00:00