GCC
伶优
coder
展开
-
GCC:gdb查看core堆栈
查看栈信息—————---当程序被停住了,你需要做的第一件事就是查看程序是在哪里停住的。当你的程序调用了一个函数,函数的地址,函数参数,函数内的局部变量都会被压入“栈”(Stack)中。你可以用GDB命令来查看当前的栈中的信息。backtracebtn是一个正整数,表示只打印栈顶上n层的栈信息。backtrace <-n>bt <-n>-n表一个负整数,表示只打印栈底下n层的栈信息。如果你要查看某一层的信息,你需要在切换当前的栈,一般来说,程序停止时,最顶层的原创 2020-07-29 10:31:50 · 1026 阅读 · 0 评论 -
GCC:objdump反汇编查找内核崩溃bug
Unable to handle kernel NULL pointer dereference at virtual address 00000000pgd = c0004000[00000000] *pgd=00000000Internal error: Oops: 17 [#1]last sysfs file: /sys/devices/virtual/vc/vcsa1/devMo...原创 2019-08-27 09:24:13 · 857 阅读 · 0 评论 -
GCC:gdb+gdbserver远程调试
gdb+gdbserver远程调试技术原创 2020-12-17 13:58:46 · 224 阅读 · 0 评论 -
GCC:fmessage-length
默认情况下,gnu工具链编译过程中,控制台输出的一行信息是不换行的,这样,当输出信息过长时(如编译错误时的信息),会导致你无法看到完整的输出信息,加入-fmessage-length=0后,输出信息会根据控制台的宽度自动换行,这样就能看全输出信息了。...原创 2020-12-15 14:09:16 · 381 阅读 · 0 评论 -
GCC:-D__STDC_FORMAT_MACROS
int64_t用来表示64位整数,在32位系统中是long long int,在64位系统中是long int,所以打印int64_t的格式化方法是: printf("%ld", value); // 64bit OS printf("%lld", value); // 32bit OS当然有跨平台的方法: #include <inttypes.h> printf("%" PRId64 "\n", value); /usr/include/inttypes.h:原.原创 2020-12-15 10:51:46 · 1107 阅读 · 0 评论 -
GCC:-msoft-float 与-mhard-float区别
hard-float 是直接生成浮点运算的指令(如果有的话);soft-float 是用库模拟浮点运算(如果有的话)。原创 2020-12-14 18:34:16 · 1996 阅读 · 1 评论 -
GCC:-march和-mtune区别及使用
使用示例:1. -march=armv7-a -mtune=cortex-a82. -march=armv6 -mcpu=arm1176jzf-s -mtune=s3c64103. -march=i686 -mtune=pentium4像-march=i686 -mtune=pentium4这样的优化选项编译出来的程序,是为奔腾4处理器优化过的,但是在任何i686上都可以运行。如果指定了-march=pentium3,那么在奔腾4处理器上程序是不能运行的。参考链接:查找关于S3C6410中的中原创 2020-12-14 18:24:55 · 2181 阅读 · 0 评论