This replaces the use of a few BSD-specific functions, as well
as the direct references to _open/_close et-al.
BFS doesn't support the FTS_NOSTAT directory link count optimization,
and no statfs() function is available, so we simply turn that off.
* Use "be:caret_position"document file attribute instead of
"be:line" and "be:selection_{length|offset}" file attributes;
* Fixed code style violations. Thanks to Axel for pointing it out!
- Report the terminal as xterm-color instead of just xterm, since we handle that fine.
- Tweak the SGR handler a bit to use bright rather than bold in some cases
- Change the color palette so the result is still readable (white on white doesn't work so well) with the default colorscheme.
* Modified patch submitted by Bill Randle.
* DisplayPort aux communications now working.
* DP Link Training still not functioning properly.
* The DP edid data isn't used yet as we still use
the vesa edid during the mode setting.
Renamed that option as it is the only negatively phrased to
"Move deleted files to Trash first" and also the option below
that to "Ask before deleting for good".
Also renamed every function name etc. in that regard and also
settings string of the Tracker settings file.
Pu the tabs back in the order it used to be. "Fonts" and "Colors"
are probably changed more often than "Look and feel".
Also re-arranged a few lines of code to reflect that order and sorted
the includes.
- ArchitectureX86 now hands off the work for GetInstructionInfo() to
DisassemblerX86, since the latter has all the information we need
to properly classify and evaluate instructions. Correspondingly a
CpuState is passed down to it in order to perform address calculations
for the instruction if it's a jump or call instruction. The latter's
targets are then stored on the thread for later retrieval when
constructing a stack trace. Adjust X86_64 accordingly for the
signature changes. This also fixes a bug where Step Over would
sometimes result in a Step Into instead due to the previous
implementation of GetInstructionInfo() occasionally failing to
classify call instructions correctly.
- Architecture::CreateStackTrace() now takes an argument specifying
the address of the last executed function if applicable. This is used
to decide who/where to decode a return value from. Adjust callers.
- DwarfImageDebugInfo::_CreateReturnValue() uses the above information
in order to know directly who the caller it needs to look up a return
value for is, rather than trying to walk backwards to find them.
Type resolution is now also a bit more sophisticated due to various
cases where the subprogram entry didn't directly contain the return
type but referred to another DIE that did. Retrieving return value
now appears to work properly in all cases except when position
independent code is involved. The latter however will require
resolving the appropriate function address in the PLT, which will
need some additional work.
- Thread now has a data member indicating if a subroutine was
executed during the last set of steps.
- ThreadHandler now sets the aforementioned state appropriate during
Step Over/Step Out.
- Architecture::CreateStackTrace() now takes a parameter indicating
whether return value retrieval is desired (based on aforementioned
thread value). Adjust callers accordingly.
- DwarfImageDebugInfo: If return value retrieval is requested, loop
backwards from the current IP to find the call instruction.
- Look at the destination of the subroutine instruction and try to
resolve it to a function. Currently only handles functions whose
destination are within the same image.
- If found, look up debug info for the target function. If available,
determine if it returns a value. If so, construct an appropriate
placeholder variable and add it to the frame's variable list.
* Generation 6 (SandyBridge) and later support
automatic downclocking of the GPU offering
substantial battery use reductions.
* As we're playing with fire here, only use on
mobile devices SandyBridge or later.
* This is testing stable on my SandyBridge laptop,
however I need further confirmation of the
functionality of this.
* Move clock gating into a function in the power.cpp
file
* Reworked code style completely.
* Improved the behaviour of the particles.
* Made particles smaller (2,5x performance gain).
* Cleaned unnecessary includes.
* Tried improving performance with glCallList - performance dropped even more.
* Tried improving performance with glDrawArrays - no noticeable performance changes.
Wherever I found an alert prompting to save changes, I used the
button labeling 'Cancel', 'Don't save', 'Save' with the first button
left aligned, 2nd and 3rd right aligned.
I added the shortcuts 'd' for 'Don't save, and 's' for 'Save' where
not already set.
The topic was discussed at
http://permalink.gmane.org/gmane.os.haiku.devel/23244
The discussion died down, I hope I made changes everyone can live with.
* Prevent driver from picking up IvyBridge
for the moment. (VESA works for the moment)
* We get a white screen of doom. Looks as though
supporting IvyBridge will require more than
just basic fixups.
* This was needed to find a bug while
working on IvyBridge support.
* Code looks a bit cleaner as well now.
* If something goes wrong, user is now
better notified via syslog
* Added the aforementioned functions.
* create_area_etc() now takes a guard size parameter.
* The thread_info::stack_base/end range now refers to the usable range
only.
* sys/select.h was not self contained before, this fixes#9327
* index is defined as a function in string.h, fixed resulting name
collision in glut_shapes.c
* A modified version of TriEdgeAI's original work.
* Cleaned up style problems
* Some virtual functions didn't mesh properly with
ones defined in the OpenGL kit (Draw for example)
* Wrote Jamfile
* Add missing include cstdlib for rand
* Not in image yet as it still needs gcc2 testing
- When creating a stack frame, we now look at the current function's
state to determine if the last executed statement was a function call.
Still need to determine the call destination in order to look up
the latter function, retrieve its return type, and then request
retrieval of the actual return value if applicable.
- CreateStackTrace() now takes a parameter indicating whether or not
to try and retrieve full frame information. This in turn is passed
on to SpecificImageDebugInfo, where e.g. DwarfImageDebugInfo can
use it to avoid constructing variables and parameters. This is
used by ThreadHandler since, when it requests the top frame for
its stepping calculations, this additional data/work is completely
unnecessary.
- If a template type parameter resolves to a void type, gcc doesn't
actually generate a type attribute for the instantiation, leading
to a crash in CreateType(). Was observable with MemoryDeleter and
others.
A few attribute names that used to be "Audio:..." were changed a
while ago to the more general "Media:...". Applied those changes.
Fixes#9316, thanks ttcoder!
- Add address size parameter to EvaluateExpression since the compilation
unit may not be available (i.e. in non-debug code). Accordingly, also
add accessor for address size to DwarfExpressionEvaluationContext,
and adjust callers accordingly.
- Correctly handle augmentation 'P'. This one consists of a data byte
describing the address encoding, followed by the address of the
personality function encoded in the aforementioned format. Not
skipping this correctly was resulting in us retrieving the wrong
FDE address format in e.g. CIEs encoded with augmentation 'zPLR'.
- The address range should be retrieved as value only without accounting
for the relative offset portion of the address encoding format. Fixes
some issues where we'd pick the wrong FDE to use for unwinding due
to us misinterpreting it as covering a far larger PC range than it
in fact did.
- DW_CFA_set_loc also needs to respect the encoded address format.
Overall, these changes fix a number of regressions introduced by the
previous commits, and also mean that stack unwinding for x86-64 should
now work as expected in all cases where either debug information or
an exception table is available.
After switching from outline only selection mode to transparent rectangle,
a drawing artifact could occur because the last selection rectangle wasn't
reset properly. On following update, Tracker thought a selection rectangle
was still to be shown.
This is a proper fix for the issue I tried to fix with hrev43552.
Previous fix only fixed the stack overflow caused by it but still
generated ghost devices due to the duplicated enumeration.
Affected motherboards include FIC PA-2013 (mine), and FIC VA503+
as mentionned on:
http://lkml.indiana.edu/hypermail/linux/kernel/9912.0/0539.html
We now check the header type for bridge devices and just ignore
wrong ones.
- Rename _ParseCIEAugmentation to _ParseCIEHeader since that more
accurately reflects what it does.
- Refactor a bit to avoid having to parse the header twice, and
simplify various places as a result.
- Pull out a _ParseCIEAugmentation() from _ParseCIE().
- If .eh_frame is being used, do a quick parse of the CIE up front
in order to determine the augmentation (if any), and use it to
retrieve addresses in the appropriate format. This fixes stack
unwinding on x86-64, and possibly other cases where the address
encoding didn't correspond to architectural target size in absolute
address format.
- We now handle augmentation 'zR', which in the case of gcc's
.eh_frame format specifies how the addresses in the FDEs are
encoded. Not actually used yet though since that will require
some refactoring of _UnwindCallFrame(), since we currently parse
the CIE too late to apply the above address size rules to the
initial offset + range. This is also the reason x86-64 stack unwind
currently fails, since the addresses there are, for most current tests
actually being encoded in 32-bit format rather than architecture
address size as should be the case for a standard DWARF debug_frame.
* Try to keep each renderer designed
the same.
* swrast will build... swpipe won't
build until we have an llvm build
package. (should in a few days once
llvm 3.2 is released)
* libmesa and libgallium no longer live in libGL
* opengl kit gets libglapi for dispatch
* swrast will get libmesa
* swpipe will get libmesagallium + gallium drivers + llvm
* Remove locking from Prefs window QuitRequested(), thanks Axel.
* Remove kConfigClose message, no longer needed since window sticks
around and is hidden on close instead of being deleted.
* delete fPreferencesWindow on BarApp QuitRequested() so it will
remove the memory used by preference window when Deskbar quits.
... instead of destroying and creating it each time.
This is taking another page from Tracker's book. It allows the prefs
window to maintain it's current state as long as the application
remains open. Since both Tracker and Deskbar are meant to always be
open this means that the state is kept all the time unless the app
crashes, quite useful.
This completes the move of clock preferences from Deskbar to Time.
This closes#7331. Also closing #8769 as invalid as it has been
discussed to death and 12/24 hour setting seems to belong in Locale
prefs only.
Clock preferences have been moved into their own settings file as
well so perhaps will be moved to their own replicant in the future.
* Added a new Clock tab to the Time preflet. Added Clock related
controls there. They all function by communicating with Deskbar.
* Put controls in a BBox controlled by the Show clock checkbox.
This more clearly shows that all the clock settings are dependent
on the show clock setting since it doesn't matter what your clock
settings are if you don't show the clock.
* Make revert work.
* Split clock settings into it's own file and struct.
* Re-add the time zone setting.
* Remove the clock settings from the Deskbar preference window, they
are in Time now.
* Make Locale preferences accepts B_LOCALE_CHANGED message, although
not used.
- If the top frame of a stopped thread has no arguments or variables
available, dump the memory block to which the stack frame belongs,
starting at the current stack pointer and extending to the end of
the block.
- CliContext now listens for value node container events so that
commands can request such a wait as well
- Implement an event wait mechanism for commands to make use of.
Adjust CliStackTrace and CliPrintVariable accordingly.
- Fix incorrect order of operations in ValueNodeManager.
- Upon receiving a changed notification, VariableTableModel needs to
make tree table aware that the previous nodes have been removed.
- Added 'frame' command for setting/printing the context's current stack
frame within the active stack trace.
- Added 'variables' command for printing the list of variables visible
within the current frame.
- CliContext now tracks the current stack trace and frame if applicable.
- CliContext now carries a value node manager. This allows it to track
the variables in the currently active frame.
- DwarfImageDebugInfo and DwarfFile will now allow us to construct
DWARF debug info objects even if the only section available for
use is .eh_frame. This essentially allows us to use CFI-based
unwinding even for release executables (assuming C++ is involved),
which means we can properly unwind the stack even for binaries
compiled with fomit-frame-pointer. This becomes more important
for x86-64, since omit is the ABI default there.
- Pull a GetFunctionsFromSymbols() out of DebuggerImageDebugInfo. This
is shared between DebuggerImageDebugInfo and DwarfImageDebugInfo for
creating debug information entries in the absence of debugging
information.
Work I did at Begeistert, trying to use the new driver manager and
detecting display controls. It should probably be a good example of
how a new driver is built. It currently loads and detects
display controls correctly but doesn't do any actual work yet.
Not sure when I have the time to finish the driver, it shouldn't be
that hard but I currently have have other priorities. Feel free to
work on it in the meantime.
- Fixed: WebPositive now successfuly detects foreign protocols and
launches their respective applications.
- Improved: The decision whether to use a search engine or a DNS lookup
for the text entered in the address bar, including for internationalized
names (IDN) (though we do not handle them correctly later on yet).
- TODO: escape the query string before passing it to webkit
(for example for: "3+4")
- Instead of asking nodes to resolve themselves directly,
DebugReportGenerator now uses the interface listener to ask the
debugger's workers to resolve them on its behalf.
This work is based on the draft node monitoring implementation
created by Vlad Slepukhin during GCI 2012 and includes following:
* Refactoring of the document "Reload" feature - it replaces
"Revert to saved" one because do the same things and a bit more.
Looks like we have to keep "Reload" menu entry alive until
StyledEdit will get more functional Undo/Redo features. Reload
functionality is also heavily used in node monitoring and
on-the-fly text encoding changing. Fixes#6887;
* Support for text encoding on-the-fly switching. This make
life easier for those who lives in countires with multiple
popular 8-bit encodings. Russia is the sample of such
de facto standards' clash (KOI-8R vs CP1251 etc.);
* Node Monitoring support with alerting user in case the file
size or modification time were changed. Another alert is shown
in case edited file was removed or moved outside of the current
volume. Moving file inside of current volume silently changes
references. Choosing "Ignore" will supress new change alerts
until next Reload or Save user request;
* Do not nag user on quiting window with zero-length untitled
document. Not a Big Deal but annoys in some cases using this
editor session as temporary storage.
- If debug information is present, then for each stack frame we now
also dump all function parameters and local variables and their
respective values, as well as their first level of children if
applicable.
- The intention is to have a class which handles the actual management
of the variable node graph, creating child nodes and such. This way
the GUI, CLI and report generator don't have to each reimplement
these low-level parts and can instead concentrate on their relevant
representations thereof.
Swapped Polish typist's keymap with much more frequently used programmer's
keymap.
Signed-off-by: Przemysław Buczkowski <przemub@yahoo.pl>
Signed-off-by: Matt Madia <mattmadia@gmail.com>
Got rid of X86_ONLY and friends in HaikuImage, FloppyBootImage, etc.
Instead we use build feature specification annotated lists with
FFilterByBuildFeatures (either explicitly or implicitly where passing
the list directly to the image rules).
I just translated the variables to the respective annotatation in most
cases, though in some cases different annotation would be more correct
(e.g. for the OpenGL stuff).
Provides a simple framework for addressing #3798. The interested reader
may add the build features and add/adjust the annotations accordingly.
Sizes range from 8 to 36 but not all sizes are represented. The
progression is not linear, the font size increases first by 1,
then 2, and finally by 4.
Works by keying command-(plus)/command-(minus) or selecting
from Font size menu, or from selecting from Font menu in Terminal
settings. If you alter the settings file to put in some other font
size it should still work, but the menu item won't be checked.
Fixes#8849
on the window, not just the active tab. Also fix window resizing
with tabs open. It wasn't taking into account the height of the
tab bar.
This fixes#8108
- Rework quick stack range check as suggested by Ingo.
- If the ref count is > 1 we invoke the debugger unconditionally.
- If equal to 1, we first perform a quick heuristic check to see if the
var might be on the stack. If we can't conclusively determine that is,
we make certain by comparing to the thread's actual stack range.
- If a BReferenceable object is deleted with a non-zero reference count,
we now test to see if the object was allocated on the stack. If so,
we don't flag a warning if the reference count is currently 1.
Slightly amended patch from Tyler Dixon. This fixes#8434.
Tested on my new GPT-disk with:
jam run ":<build>makebootable" --dry-run /dev/sda4
Signed-off-by: Fredrik Holmqvist <fredrik.holmqvist@gmail.com>
* It's painfully obvious to me now that we will
need to manage our own framebuffers still in
the latest gallium code.
* GalliumFramebuffer works pretty cleanly as a
class.. we have to remember to lock and unlock
the Framebuffer object however when we access
fBuffer directly. (which needs to occur by design)
* I'm really starting to have problems with the
amount of downcasting Gallium3D does now.