46361 Commits

Author SHA1 Message Date
Rene Gollent
e94c611961 Debugger: Implement ArchitectureX8664::CreateStackFrame().
This is for the most part a direct copy of the equivalent x86 function
with adjustments to deal with the difference in address sizes and
registers. This gets architectural (aka unassisted) backtraces working
on x86-64, assuming the code in question has been built with frame pointers
enabled.

Thanks to Alex Smith for his assistance in implementing the
function prologue and syscall iframe detection.
hrev45902
2013-07-25 20:13:12 -04:00
Rene Gollent
edffd6cde8 Debugger: Add interrupt vector CpuStateX8664. 2013-07-25 20:11:28 -04:00
Alex Smith
271b27d5a3 x86_64: Set vector in iframe/debug state to 99 for syscalls.
Although syscalls are done through SYSCALL and therefore don't actually
have an interrupt number, set it to 99 (the syscall vector on 32-bit)
in the iframe so that a syscall frame can be identified. Also added
vector/error_code to x86_64_debug_cpu_state for Debugger to use, not
sure why I didn't put them there in the first place.
hrev45901
2013-07-25 20:04:25 +01:00
Jérôme Duval
143cfee84c usb_asix: takes into account that received data is padded to 16bit
* also checks whether too little data is received.
hrev45900
2013-07-25 19:18:50 +02:00
Jérôme Duval
0994532db4 boot_loader: checks whether mapping rsdt header succeeded.
... and exits in case of failure. Reported by mt in #9895.
hrev45899
2013-07-25 18:52:06 +02:00
Pawel Dziepak
6972b91e17 servers/net: Make DHCP client more RFC 2131 compliant
* The client should enter state REBINDING only when RENEWING times
   out.
 * When in RENEWING or REBINDING state do not give up retrying
   unless the lease expires.
 * Fix bug sending 2^n DHCP requests at n-th lease renewal.
 * Use timeout values and renewal/rebinding times suggested by the
   RFC.
 * Use different XIDs in subsequent transactions.
hrev45898
2013-07-25 04:05:10 +02:00
Rene Gollent
3b2c8f50dc Debugger: Handle DW_TAG_GNU_template_template_param.
This is a GNU extension for identifying the case of a template parameter
that is itself a template. We don't currently make use of it, but this
allows us to parse/skip it correctly.

With this change, webcore is loadable/debuggable on x86-64 when built
with -gdwarf-4, with the caveat that ~3-4GB of RAM are currently required.
hrev45897
2013-07-23 18:08:40 -04:00
Jérôme Duval
b5ccadd7c2 Virtio: implemented indirect descriptors feature.
* indirect descriptors count hardcoded to 128.
* already activated for virtio_block driver.
hrev45896
2013-07-23 23:00:20 +02:00
Jérôme Duval
17c55998dc Virtio SCSI: add a description for CHANGE feature. 2013-07-23 22:59:01 +02:00
Rene Gollent
79a2f0c70c Debugger: Fix insets in BreakConditionConfigWindow. hrev45895 2013-07-22 23:01:30 -04:00
Murai Takashi
a385c68ad7 Cortex: Fix forming reference to null pointer
* Style fix only for the lines involved.

Signed-off-by: Jérôme Duval <jerome.duval@gmail.com>
hrev45894
2013-07-22 21:15:15 +02:00
John Scipione
46cb3d3ea6 IconUtils: Add parens to fix warnings
Fixes #9888
hrev45893
2013-07-22 13:42:48 -04:00
Alex Wilson
e66e2a2535 Fix layout issue in Backgrounds preflet.
Add an extra column to the grid layout so that the menu fields are free
to be much bigger than the checkbox.

closes #9882
hrev45892
2013-07-21 23:52:55 -04:00
Rene Gollent
8e80ec6aaa Debugger: Handle some more v4 attributes.
- DIECompileUnit can also be marked with DW_AT_main_subprogram to
indicate that the main program resides within that particular unit.

- DIEBaseType and DIEMember now have the additional attribute
DW_AT_data_bit_offset which defines the offset in a somewhat different
manner than DWARF2/3's DW_AT_bit_offset, and deprecates the latter.

Unused/untested for the moment, as gcc 4.7.3 doesn't yet appear to be
generating either of the above attributes.
hrev45891
2013-07-21 21:19:26 -04:00
Rene Gollent
6dbd3ed18c Debugger: Fix X86 handling of larger return values.
For return values too large to fit into EAX:EDX, the address at which
the value is located is stored in EAX. We were incorrectly assuming
they were at the current stack pointer, which isn't necessarily the
case depending on what optimization/code generation options were
used, leading to us sometimes showing the wrong values for such case.
The same issue showed up with debug binaries generated by Clang.
hrev45890
2013-07-21 19:05:20 -04:00
Rene Gollent
49093da705 Debugger: Handle constant member offsets properly.
For DWARF4, gcc now sometimes emits member locations as constant
offsets from their parent rather than as location expressions.
We weren't handling this case properly, rather we were always
assuming that a constant offset implied we were dealing with a
bit field.

Fixes struct/class members not always having correct values on
version 4.
hrev45889
2013-07-21 18:45:12 -04:00
Rene Gollent
f1fb804608 Debugger: Add missed error check. hrev45888 2013-07-20 23:48:18 -04:00
Rene Gollent
d950dcd9ab Debugger: Implement new expression operands.
DWARF4 adds two new expression operands for values that are known, but
not located anywhere in memory (e.g. a known constant or a value computed
from a composite of other values/locations in the program). These are
DW_OP_implicit_value, which supplies the value directly as an LEB128 +
data block, and DW_OP_stack_value, which indicates the top of the
expression stack is the value.

Implements corresponding support in DwarfExpressionEvaluator,
ValueLocation and ValueLoader.
hrev45887
2013-07-20 23:38:29 -04:00
Rene Gollent
a326afa3fc Debugger: Rework DIETypeUnit.
DIETypeUnit now inherits from DIECompileUnitBase in order to handle
things like setting the language info properly. This was previously
missing and would lead to occasional crashes with DWARF4.
hrev45886
2013-07-20 17:47:40 -04:00
Niels Sascha Reedijk
3436a840a3 Update translations from Pootle hrev45885 2013-07-20 06:14:54 +02:00
Rene Gollent
104b28862d Debugger: DwarfFile: Fix DWARF4 signature handling.
Depending on how the type unit was actually set up hierarchically,
we sometimes ended up with the unit set to the wrong actual type
object. Instead, we now simply let the unit parse, and then look up
the entry by the offset specified in the header after all is said
and done. Fixes class/struct objects sometimes winding up resolving
to one of their members instead.

Some problems still remain with resolving variable values for such
types though, needs further investigation.
hrev45884
2013-07-19 21:44:48 -04:00
Rene Gollent
1c292f7eb4 ProcessController: Fix memory calculations.
On systems with > 4GB of memory, the calculations would overflow,
leading to the memory bars being drawn incorrectly.
hrev45883
2013-07-19 20:53:12 -04:00
Humdinger
8f79f5f3b8 Rebuild Paladin package.
Paladin relied on liblocale.so that was moved to libbe (I think).
An updated patch will be submitted to haikuporter shortly.
hrev45882
2013-07-19 22:06:33 +02:00
Philippe Saint-Pierre
0e95ac1797 CPUFreq: rewrite interpolation formula - division by zero (#9872) hrev45881 2013-07-18 22:27:27 -04:00
Rene Gollent
2fab6ab728 Debugger: Fix handling of contained type attribute.
The DIEs generated by gcc sometimes pass a modified type for
DIEPointerToMember's containing type. As such, we need to resolve
the passed in type down to its base type before verifying that it's
indeed a compound type.
hrev45880
2013-07-18 21:37:02 -04:00
Rene Gollent
fe07d32c75 Debugger: Reorder unit finishing.
Type units need to be finished before compilation units to ensure that e.g.
modified types have their base types already set by the time we get to
compilation unit attributes.
2013-07-18 21:37:01 -04:00
Philippe Saint-Pierre
d087b9ca15 CPUFreq: use transparent background when used as replicant hrev45879 2013-07-18 20:54:50 -04:00
Rene Gollent
a5bee83638 DwarfFile: Slight cosmetic change to trace output.
Output the DIE trace for a type unit after we've read the signature and
type offset so we can include those as well.
hrev45878
2013-07-18 19:07:59 -04:00
Jérôme Duval
f3b8787e91 virtio.h: remove trailing whitespaces. hrev45877 2013-07-18 18:27:01 +02:00
Jérôme Duval
9e88776c80 virtio_block: takes capacity change into account
* allows live resizing.
2013-07-18 18:25:59 +02:00
Jérôme Duval
2f2f475b1d virtio*: remove trailing spaces hrev45876 2013-07-18 17:57:56 +02:00
John Scipione
f1eb42958f BMenuField: Check if Frame() is valid, refactor hrev45875 2013-07-18 03:24:26 -04:00
John Scipione
8d75f14355 BMenuField: Style fixes 2013-07-18 03:24:26 -04:00
Alexander von Gluck IV
ae4da1002b netserver: Add EAP defines for WPA enterprise
* Working towards #8850
hrev45874
2013-07-17 20:16:49 -05:00
Rene Gollent
e042b11803 Debugger: implement support for section-global references.
- Add DwarfFile::_GetContainingCompilationUnit() to request a binary
search for the compilation unit containing the passed in global offset.
- DwarfFile::_ResolveReference(): handle global references by first
attempting to find a containing compilation unit, and then seeing if we
can find an entry for the corresponding relative offset within it.
hrev45873
2013-07-17 18:20:15 -04:00
Rene Gollent
9cd4e805e6 Debugger: Add convenience function to BaseUnit...
...to query if a given global offset is within its range.
2013-07-17 18:20:13 -04:00
Rene Gollent
142f7cabdc Debugger: DwarfFile: Clean up type units on delete. 2013-07-17 17:54:39 -04:00
Rene Gollent
6882d4b5d7 Debugger: Handle DW_FORM_exprloc.
Get rid of AC_EXPRESSION. DW_FORM_exprloc is for all practical intents
and purposes identical to DW_FORM_block except with a more explicit
intent. As such, simply treat it the same as a block attribute. Gets
value resolution working on DWARF4.
hrev45872
2013-07-17 17:12:37 -04:00
Philippe Saint-Pierre
f74ad62fd4 ICNS translator: use delete [] where new [] was used hrev45871 2013-07-17 17:08:28 -04:00
Philippe Saint-Pierre
a71f2ed86a TrackerReader: style fixes, no functional changes intended 2013-07-17 16:58:41 -04:00
Philippe Saint-Pierre
cd15d8c3d0 Style fix, no functional change intended hrev45870 2013-07-17 13:38:46 -04:00
Philippe Saint-Pierre
68aca9a477 Message screensaver: memory leak fix - CID 601698 2013-07-17 13:25:42 -04:00
Philippe Saint-Pierre
fa30ef5640 Message screensaver: close pipe with pclose - CID 990944 2013-07-17 13:06:10 -04:00
Philippe Saint-Pierre
f293052d9f Style fix, no functional change intended hrev45869 2013-07-17 12:44:40 -04:00
Murai Takashi
fa49409097 Use delete[] instead of delete
Signed-off-by: Jérôme Duval <jerome.duval@gmail.com>
hrev45868
2013-07-17 18:31:28 +02:00
Murai Takashi
15be2c6018 Fix called C++ object pointer is null
Signed-off-by: Jérôme Duval <jerome.duval@gmail.com>
2013-07-17 18:29:29 +02:00
Murai Takashi
2aa0e54e4f Fix called C++ object pointer is null
Signed-off-by: Jérôme Duval <jerome.duval@gmail.com>
hrev45867
2013-07-17 18:26:10 +02:00
Murai Takashi
7a569c8250 Fix Called C++ object pointer is null
Signed-off-by: Jérôme Duval <jerome.duval@gmail.com>
2013-07-17 18:26:08 +02:00
Philippe Saint-Pierre
be064b5af3 virtio_pci.cpp: check for (un)supported hardware never fit
CID #1032255
hrev45866
2013-07-17 12:15:24 -04:00
Philippe Saint-Pierre
da1f251a8f DiskUsage: drawing artefact in TabView 2013-07-17 12:01:26 -04:00