blob: 083c5ec7ea70bccd6cef1877d462d74ef58d7885 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
<think>
Okay, so I need to classify this bug report into one of three categories: instruction, syscall, or runtime. Let me read through the problem description again to understand what's going on.
The issue is about an ARMv7 LPAE (Large Physical Address Extensions) scenario where a 'bkpt' instruction causes a prefetch abort exception. The IFSR (Instruction Fault Status Register) bit [9] isn't set correctly in this case, which should be indicating the use of LPAE. When the test program runs, it outputs "short-descriptor" instead of the expected "long-descriptor".
The environment includes QEMU with a specific revision and Ubuntu 16.04 LTS with a Linaro cross-compiler.
So, let's break this down. The 'bkpt' instruction is a software breakpoint used for debugging. When it triggers an exception (prefetch abort in this case), the system should set certain bits in the IFSR to describe the fault. However, bit 9 isn't being set when it should be, indicating that LPAE is active.
Now, considering the categories:
- **Instruction**: This would involve issues with how instructions are processed or executed. Since 'bkpt' is an instruction causing the problem, this could fit.
- **Syscall**: Issues related to system calls. Here, the problem isn't directly about syscalls but rather exceptions and registers during a specific instruction execution.
- **Runtime**: Errors that occur during runtime which aren't necessarily tied to a specific instruction or syscall.
The bug is specifically about how an exception (prefetch abort) caused by a 'bkpt' instruction doesn't correctly set a bit in the IFSR. This seems more related to how exceptions are handled and how registers are updated, rather than a problem with the 'bkpt' instruction itself. So it's more of a runtime issue because it occurs during execution when handling an exception.
Therefore, the category is likely **runtime**.
</think>
runtime
|