* Fix a calculation error with respect to the last line of the block.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42216 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Clean up various drawing issues in the memory view's rendering code that were
causing scrolling artifacts.
* Fix stupid mistake whereby the data being visualized was in fact from the
Debugger's address space, and not the target team's. This would likely also
have caused some crashes.
* Highlight the data pointed to by the current target address.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42212 a95241bf-73f2-0310-859d-f6bbb57e9c96
choice of hexadecimal and/or character displays of the memory data, with
different digit grouping sizes. Still needs some work but is basically
functional.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42204 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Actually start rendering the memory data. Still has some drawing glitches
when scrolling though, will look into those tomorrow. Also doesn't yet
highlight the location which the target address actually points to within
the block.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42167 a95241bf-73f2-0310-859d-f6bbb57e9c96
allowing one to bring up the inspector. This gets us as far as successfully
retrieving memory data from the target team and passing it on to any listeners.
Right now there's not much to see though, as the memory view to visualize the
data is not yet implemented.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42143 a95241bf-73f2-0310-859d-f6bbb57e9c96
* If we detect ACPI 2.0 or higher, the spec says we should use the XSDT rather
than the RSDT. Attempt to do so, falling back to the RSDT if the former fails
to be mapped/validated.
* Refactored acpi_find_table into a templated version to account for the fact
that the XSDT exports different pointer widths for its links to other tables
than the RSDT.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42133 a95241bf-73f2-0310-859d-f6bbb57e9c96
* RetrieveMemoryBlockJob: Make use of get_memory_properties() to retrieve the
block's protection bits and mark it appropriately.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42132 a95241bf-73f2-0310-859d-f6bbb57e9c96
address protection bits as well as the wiring flags for an arbitrary address
in a team's address space. Will be used in the debugger for the purposes
of the memory inspector/editor, in order to determine whether it can in fact
allow editing for the currently inspected address range.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42129 a95241bf-73f2-0310-859d-f6bbb57e9c96
actually misleading, since it specifies the length of the xsdt rather than the rsdt. Furthermore, it is only available if the BIOS reports ACPI version 2.0 or greater. Since we don't currently support the XSDT, we can't rely on that field and have to resort to the previous approach of mapping the RSDT header in order to determine the length of the RSDT itself.
Also add validation of the RSDT's checksum so we don't get tripped up by BIOS's with broken tables.
Should fix boot problems that were introduced by r42105.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42118 a95241bf-73f2-0310-859d-f6bbb57e9c96
TeamMemoryBlockManager to avert a race condition where an entry
could be acquired while another thread was about to delete it.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42093 a95241bf-73f2-0310-859d-f6bbb57e9c96
AcquireReference() now does, and adjust all callers that relied on the previous
return type.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42091 a95241bf-73f2-0310-859d-f6bbb57e9c96
- Introduce TeamMemoryBlockOwner to act as an interface for blocks to
remove themselves from the manager when they expire. Consequently remove
TeamMemoryBlock's direct reference to the block manager.
- Simplify GetBlock() to remove unnecessary recursion.
- Store dead blocks in a doubly linked list instead of another hash table.
- Minor style fixes.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42090 a95241bf-73f2-0310-859d-f6bbb57e9c96
page data of the target team.
* Jobs: Add RetrieveMemoryBlockJob which performs a background read of the
target team's memory. Used by InspectRequested() to perform the actual work.
* TeamDebugger: Added InspectRequested() hooks to allow clients to ask for
a memory read to be performed.
* Introduce InspectorWindow and MemoryView to form the basis of a memory inspector.
As yet these are more or less stubs and not yet hooked in.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42080 a95241bf-73f2-0310-859d-f6bbb57e9c96
is deleted/recreated in between retrieval and lock. Report failure if so.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42073 a95241bf-73f2-0310-859d-f6bbb57e9c96
cases such as USB keyboards where the keyboard no longer functions once the
kernel is entered and the USB stack initializes.
Implements #7561.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41736 a95241bf-73f2-0310-859d-f6bbb57e9c96
menu item it's associated with rather than an input string. This allows it
to calculate the position to start the input at, as well as the correct
line to place it on. The previous solution always put the input at the
center line, which happened to be the right place by happy coincidence
unless one also had the menu items for viewing/saving the debug syslog
present.
* Implement input buffer scrolling, and consequently lift the previous size
limit on user input (it is now only limited by the size of the passed in
buffer).
* Implement parsing of the input buffer to allow it to handle comma-separated
options. Thus, one can now input things like "disable_smp true, serial_debug_output false"
and it will be handled properly.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41706 a95241bf-73f2-0310-859d-f6bbb57e9c96
aren't otherwise exposed via the safe mode menus. The option can be
found under the debug options menu, where additional settings can be
added one at a time with the same syntax used in kernel settings files
(i.e. disable_acpi on).
Scrolling of the input buffer is not yet supported (will implement that
soon), so currently the input is clamped to the size of one line. This
shouldn't be a problem for our current set of options though.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41577 a95241bf-73f2-0310-859d-f6bbb57e9c96
to the kernel args in a single go. Otherwise we wind up with more link list
entries than expected, which in turn resulted in settings not quite being
parsed properly upon entering the kernel, which meant that if options were
chosen in both the debug and safe mode menus, only the debug ones were
applied. This might also have resulted in the kernel settings not being
loaded correctly in such an instance.
Should fix various issues people have had with safe mode settings not being
applied properly.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41500 a95241bf-73f2-0310-859d-f6bbb57e9c96
- Adds IPv6 fragmentation support and some partial work to enable configuration of IPv6 in net_server. Not currently in the build.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41291 a95241bf-73f2-0310-859d-f6bbb57e9c96
updated working packages are available. Should fix Pe and Web+ problems.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40725 a95241bf-73f2-0310-859d-f6bbb57e9c96
Consequently the locale kit would fail to load resources since the pointer was no longer an address within the liblocale.so image,
with the result that things like flag bitmaps would no longer be accessible.
Fixes#7246.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40580 a95241bf-73f2-0310-859d-f6bbb57e9c96
DiskSystemAddOnManager::PutAddOn() being broken in various ways
due to incorrect curly brace placement. Among other things this
probably led to add-ons not being unloaded correctly when they should
have been.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40265 a95241bf-73f2-0310-859d-f6bbb57e9c96
to preserve a consistent display order regardless of whether Tracker scripting
or the internal navigator is being used to iterate through images.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40201 a95241bf-73f2-0310-859d-f6bbb57e9c96
window with the mouse, and as such didn't take it along to the new workspace
as the cmd+F# shortcuts do. Fixes#7057.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40070 a95241bf-73f2-0310-859d-f6bbb57e9c96
Wrap call to SymbolLookup::Init() in a try/catch block since it could
potentially throw an exception. This was causing the debugger to terminate
in some instances.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40046 a95241bf-73f2-0310-859d-f6bbb57e9c96
- Use new methods to simplify a few places in DwarfFile.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39918 a95241bf-73f2-0310-859d-f6bbb57e9c96
system watch events, since otherwise there's a potential race where we might
try to process a thread rename before having processed the notification for
that thread's creation.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39867 a95241bf-73f2-0310-859d-f6bbb57e9c96
property change notifications being sent as having occurred for the team's
main thread.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39865 a95241bf-73f2-0310-859d-f6bbb57e9c96
This lets us keep up to date with thread names, which makes, for example
Tracker a bit more tolerable to debug since it employs thread renaming
to set the names of its windows.
Implements #4430.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39847 a95241bf-73f2-0310-859d-f6bbb57e9c96
- Add FindSection() and IsLoaded() calls to ElfFile.
- On init, cache the section start/end for the .text and .plt
sections in DwarfImageDebugInfo. Use them to make the check
for classifying addresses significantly cheaper.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39826 a95241bf-73f2-0310-859d-f6bbb57e9c96
Linkage Table section. Use that additional information to skip PLT entries
while stepping. Fixes#6974.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39823 a95241bf-73f2-0310-859d-f6bbb57e9c96
- Init all registers to same value by default. gcc doesn't set up explicit CFI
for same-value registers, so assume any register follows that rule until
explicitly told otherwise (c.f. gdb/dwarf2-frame.c:793).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39817 a95241bf-73f2-0310-859d-f6bbb57e9c96
class in order to allow us to set up architecture specific default rules
for registers that aren't explicitly set by the CFI program.
- Set up default rule for EIP on x86.
- Theoretically set up a default rule for the stack pointer. Disabled for the
time being though until I determine why that rule's not yielding the expected
values for ESP in anything other than the top frame, though the other location
offset rules work as expected.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39816 a95241bf-73f2-0310-859d-f6bbb57e9c96
needed a corresponding adjustment to convert it back to host order before
working with it. Fixes#6972.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39812 a95241bf-73f2-0310-859d-f6bbb57e9c96
versus the passed in base location. In the case of a union we don't
want this behavior since all members start at offset 0. Fixes union values
showing up incorrectly in various circumstances.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39797 a95241bf-73f2-0310-859d-f6bbb57e9c96
parameter. When a CStringValue is representing an array, use
the array's length to limit how many bytes we read.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39795 a95241bf-73f2-0310-859d-f6bbb57e9c96
and not any intermediate ones in the case of a multidimensional character
array.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39786 a95241bf-73f2-0310-859d-f6bbb57e9c96