Нет необходимости возвращаться на armv7, когда я использую memcpy - PullRequest
0 голосов
/ 06 ноября 2018

У меня есть что-то вроде этого:

uint8_t *data = (uint8_t *) 3;
*data = 1;

, который покажет достаточно возврата

 Object "/lib/libc.so.6", at 0xb6d07d33, in __libc_start_main
 Object "./test_log", at 0xdbee3, in main
 Object "/lib/libc.so.6", at 0xb6d1d9cf, in 

но когда я использую memcpy вот так:

memcpy((void *) 3, 0, 3);

, который не будет показывать полезную обратную трассировку,

Object "/data/running_environment/debug2/libc.so.6", at 0xb57ab8b7, in 
Object "/data/running_environment/debug2/libc.so.6", at 0xb577521f, in

Тем не менее, я перекомпилировал libc с флагами

../configure --host=arm-linux-gnueabihf --enable-stack-protector=strong  --prefix=my_path/glibc-2.28/build/install CFLAGS="-O2 -g3    -funwind-tables -mapcs-frame -funwind-tables -rdynamic  -funwind-tables "

И скомпилировал мой тест с флагами:

-O0 -g -Wall -std=c++14 -g3  -fexceptions  -ffunction-sections  -rdynamic -funwind-tables -fasynchronous-unwind-tables  -mfpu=neon
...