Revert "Added check to ensure KDL does not include frames beyond kernel entry in the backtrace. This prevents KDL from faulting when printing backtrace on ARM."
This reverts commit3fbb24680c
. As I mentioned in #11131, this fix is not correct, and works around the problem. The real reason was that arch_debug_call_with_fault_handler was not working properly, so the fault handler went crazy. With commiteb92810
that is fixed so this can be reverted.
This commit is contained in:
parent
eb92810edc
commit
6048591e9d
@ -9,7 +9,7 @@
|
||||
|
||||
// memory layout
|
||||
#define KERNEL_BASE 0x80000000
|
||||
#define KERNEL_SIZE 0x800000
|
||||
#define KERNEL_SIZE 0x80000000
|
||||
#define KERNEL_TOP (KERNEL_BASE + (KERNEL_SIZE - 1))
|
||||
|
||||
/*
|
||||
|
@ -59,7 +59,7 @@ TODO:
|
||||
|
||||
|
||||
// 8 MB for the kernel, kernel args, modules, driver settings, ...
|
||||
static const size_t kMaxKernelSize = KERNEL_SIZE;
|
||||
static const size_t kMaxKernelSize = 0x800000;
|
||||
|
||||
// Base address for loader
|
||||
static const size_t kLoaderBaseAddress = KERNEL_LOAD_BASE + kMaxKernelSize;
|
||||
|
@ -56,18 +56,19 @@ already_visited(uint32 *visited, int32 *_last, int32 *_num, uint32 fp)
|
||||
static status_t
|
||||
get_next_frame(addr_t fp, addr_t *next, addr_t *ip)
|
||||
{
|
||||
addr_t _fp = *(((addr_t*)fp) -3);
|
||||
addr_t _sp = *(((addr_t*)fp) -2);
|
||||
addr_t _lr = *(((addr_t*)fp) -1);
|
||||
addr_t _pc = *(((addr_t*)fp) -0);
|
||||
if (fp != 0) {
|
||||
addr_t _fp = *(((addr_t*)fp) -3);
|
||||
addr_t _sp = *(((addr_t*)fp) -2);
|
||||
addr_t _lr = *(((addr_t*)fp) -1);
|
||||
addr_t _pc = *(((addr_t*)fp) -0);
|
||||
|
||||
if (_lr > KERNEL_TOP) {
|
||||
return B_BAD_ADDRESS;
|
||||
*ip = (_fp != 0) ? _lr : _pc;
|
||||
*next = _fp;
|
||||
|
||||
return B_OK;
|
||||
}
|
||||
*ip = (_fp != 0) ? _lr : _pc;
|
||||
*next = _fp;
|
||||
|
||||
return B_OK;
|
||||
return B_BAD_VALUE;
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user