Câu hỏi Làm thế nào để cài đặt libmudflap trong 64-bit 14.04 "Trusty"


Tôi muốn chứng minh mudflap làm việc trên chương trình này,

int
main()
{
  int tab[10];
  int i;
  for (i = 1; i <= 10; i++)
    tab[i] = 0;
  return 0;
}

nhưng tôi gặp lỗi,

$ gcc -fmudflap -lmudflap bounds-violation.c 
In file included from <command-line>:0:0:
/usr/include/stdc-predef.h:59:1: fatal error: mf-runtime.h: No such file or directory
 #endif
 ^
compilation terminated.

Vì vậy, tôi cần các thư viện mudflap. Nhưng dường như không tồn tại một thư viện thích hợp cho nền tảng x86_64 của tôi:

$ uname -a
Linux orca 3.13.0-29-generic #53-Ubuntu SMP Wed Jun 4 21:00:20 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
$ apt-cache search mudflap
lib64mudflap0-dbg-powerpc-cross - GCC mudflap shared support libraries (64 bit debug symbols)
lib64mudflap0-powerpc-cross - GCC mudflap shared support libraries (64bit)
libhfmudflap0-armel-cross - GCC mudflap shared support libraries (hard float)
libhfmudflap0-dbg-armel-cross - GCC mudflap shared support libraries (hard float debug symbols)
libmudflap0-4.7-dev-armel-cross - GCC mudflap support libraries (development files)
libmudflap0-4.7-dev-armhf-cross - GCC mudflap support libraries (development files)
libmudflap0-4.8-dev-armhf-cross - GCC mudflap support libraries (development files)
libmudflap0-4.8-dev-powerpc-cross - GCC mudflap support libraries (development files)
libmudflap0-armel-cross - GCC mudflap shared support libraries
libmudflap0-armhf-cross - GCC mudflap shared support libraries
libmudflap0-dbg-armel-cross - GCC mudflap shared support libraries (debug symbols)
libmudflap0-dbg-armhf-cross - GCC mudflap shared support libraries (debug symbols)
libmudflap0-dbg-powerpc-cross - GCC mudflap shared support libraries (debug symbols)
libmudflap0-powerpc-cross - GCC mudflap shared support libraries
libsfmudflap0-armhf-cross - GCC mudflap shared support libraries (soft float)
libsfmudflap0-dbg-armhf-cross - GCC mudflap shared support libraries (soft float debug symbols)

Tại sao tất cả các công cụ ARM và Armel? Tìm kiếm trên các đề xuất mạng nên có một gói được gọi là libmudflap0-4.8-dev, tương ứng với phiên bản GCC được cài đặt sẵn trong Trusty, nhưng nó không tồn tại.

Đây có phải là một lỗi? Nếu không, làm thế nào để cài đặt libmudflap?

Cảm ơn.


2
2018-06-22 20:26


gốc




Các câu trả lời:


Tôi đã không nhận ra rằng mudflap đã không được chấp nhận trong GCC từ phiên bản 4.9. Mặc dù Ubuntu 14.04 vận chuyển 4.8, tôi đoán họ đã ngừng gói. Tra cứu AddressSanitiser thay thế.


2
2018-06-25 20:41