Re: [PATCH v8 5/7] Support software single step on ARM in GDBServer

Antoine Tremblay
2016-01-06T14:36:14Z

On 01/06/2016 09:22 AM, Yao Qi wrote:
> Antoine Tremblay <antoine.tremblay@ericsson.com> writes:
>
> Hi Antoine,
>
>> --- a/gdb/gdbserver/linux-aarch32-low.h
>> +++ b/gdb/gdbserver/linux-aarch32-low.h
>> @@ -15,6 +15,27 @@
>> You should have received a copy of the GNU General Public License
>> along with this program. If not, see <http://www.gnu.org/licenses/>. */
>>
>> +/* Correct in either endianness. */
>> +#define arm_abi_breakpoint 0xef9f0001UL
>> +
>> +/* For new EABI binaries. We recognize it regardless of which ABI
>> + is used for gdbserver, so single threaded debugging should work
>> + OK, but for multi-threaded debugging we only insert the current
>> + ABI's breakpoint instruction. For now at least. */
>> +#define arm_eabi_breakpoint 0xe7f001f0UL
>> +
>> +#ifndef __ARM_EABI__
>> +static const unsigned long arm_breakpoint = arm_abi_breakpoint;
>> +#else
>> +static const unsigned long arm_breakpoint = arm_eabi_breakpoint;
>> +#endif
>> +
>> +#define arm_breakpoint_len 4
>> +static const unsigned short thumb_breakpoint = 0xde01;
>> +#define thumb_breakpoint_len 2
>> +static const unsigned short thumb2_breakpoint[] = { 0xf7f0, 0xa000 };
>> +#define thumb2_breakpoint_len 4
>> +
>
> This change causes GDBserver build errors on both ARM and AArch64, which
> are shown in the commit log of the patch below.
>

Strange I did not see those at all with arm-linux-gnueabihf-gcc
(Ubuntu/Linaro 4.8.2-16ubuntu4) 4.8.2

Ideas on why you see those and I would not ?

Looking forward to your follow up patches about the issues revealed...

Thanks,
Antoine