2012-06-07 27 views

Trả lời

19

Sử dụng make -d hoặc make --debug[=flags]options:

‘-d’

In thông tin gỡ lỗi ngoài việc chế biến bình thường. Thông tin gỡ lỗi cho biết tệp nào đang được xem xét để làm lại, tệp nào được so sánh và với kết quả nào, tệp nào thực sự cần được làm lại, quy tắc ngầm được xem xét và được áp dụng — mọi thứ thú vị về cách quyết định phải làm gì. Tùy chọn -d tương đương với ‘--debug=a’ (xem bên dưới).

‘--debug[=options]’

In thông tin gỡ lỗi ngoài xử lý bình thường. Có thể chọn nhiều cấp độ và loại đầu ra khác nhau. Không có đối số, hãy in mức gỡ lỗi “cơ bản”. Các đối số có thể có bên dưới; chỉ có ký tự đầu tiên được xem xét và các giá trị phải được phân cách bằng dấu phẩy hoặc dấu cách.

a (tất cả) Tất cả các loại đầu ra gỡ lỗi được bật. Điều này tương đương với việc sử dụng ‘-d’.

b (cơ bản) Gỡ lỗi cơ bản in từng mục tiêu được tìm thấy là lỗi thời và liệu bản dựng có thành công hay không.

v (tiết) Cấp trên ‘basic’; bao gồm các thông báo về các tệp makefiles nào được phân tích cú pháp, các điều kiện tiên quyết không cần phải được xây dựng lại, v.v. Tùy chọn này cũng cho phép các thông báo ‘basic’.

i (ẩn) In thông báo mô tả tìm kiếm quy tắc ngầm cho từng mục tiêu. Tùy chọn này cũng cho phép ‘basic’ tin nhắn.

j (công việc) In thông báo cung cấp chi tiết về yêu cầu các tiểu ban cụ thể.

m (makefile) Theo mặc định, các thông báo trên không được bật trong khi cố gắng làm lại các tệp makefiles. Tùy chọn này cho phép tin nhắn trong khi xây dựng lại makefiles, quá. Lưu ý rằng tùy chọn ‘all’ không bật tùy chọn này. Tùy chọn này cũng cho phép ‘basic’ tin nhắn.

Một tùy chọn khác là sử dụng remake - phiên bản được vá của GNU Làm cho thêm báo cáo lỗi được cải thiện, khả năng theo dõi thực thi và trình gỡ lỗi.

2

ElectricMake có thể tạo ra một phiên bản XML-đánh dấu-up của build đăng nhập của bạn với rất nhiều thông tin mà có thể giúp trong tình huống này:

  • Các đầy đủ lệnh dòng cho tất cả các lệnh gọi trong thời gian xây dựng (ngay cả những được đánh dấu là lệnh "im lặng" với công cụ sửa đổi @).
  • Nguồn gốc (makefile và số dòng) của các lệnh được gọi.
  • Thời gian chạy của lệnh.
  • Mối quan hệ phụ thuộc giữa các mục tiêu trong bản dựng.
  • Mối quan hệ cấu trúc giữa các mục tiêu và đệ quy tạo ra trong bản dựng.
  • Tệp đọc/ghi bằng các lệnh được gọi trong bản dựng.

Dưới đây là một mẫu đầu ra rằng:

<job id="J0824ab08" thread="5e72bb0" node="linbuild1-2" type="rule" name="../../i686_Linux/testmain/testmain.d" file="../config/rules.mak" line="109"> 
<command line="110"> 
<argv>echo Rebuilding '../../i686_Linux/testmain/testmain.d'</argv> 
<output src="prog">Rebuilding ../../i686_Linux/testmain/testmain.d 
</output> 
</command> 
<command line="111-114"> 
<argv>set -e; g++ -MM -w -DUSE_PROFILING -DUSE_LOGGING -DHAVE_UNIX -DHAVE_LINUX -I.. testmain.cpp \ 
     | sed 's!\(testmain\)\.o[ :]*!../../i686_Linux/testmain/\1.o '../../i686_Linux/testmain/testmain.d' : !g' \ 
     &gt; '../../i686_Linux/testmain/testmain.d'; \ 
     [ -s '../../i686_Linux/testmain/testmain.d' ] || touch '../../i686_Linux/testmain/testmain.d'</argv> 
</command> 
<opList> 
<op type="read" file="/home/ericm/src/testmain/testmain.cpp"/> 
<op type="read" file="/home/ericm/src/minidumper/ExceptionReport.h"/> 
<op type="read" file="/home/ericm/src/util/ECAssert.h"/> 
<op type="create" file="/home/ericm/i686_Linux/ecloud/testmain/testmain.d" found="0"/> 
</opList> 
<timing invoked="1.919926" completed="3.600491" node="linbuild1-2"/> 
<waitingJobs idList="J0824ae38"/> 
</job> 

How to Quickly Navigate an Unfamiliar Makefile thấy một ví dụ của việc sử dụng các chú thích build log để tìm theo cách của bạn xung quanh một makefile.

Data Mining ElectricAccelerator Annotation cho biết cách bạn có thể sử dụng nhật ký tạo chú thích để tạo hóa đơn cho tài liệu xây dựng.

ElectricMake là GNU Hãy tương thích, do đó, nó có thể xử lý các tệp định dạng hoạt động với GNU.

Tuyên bố từ chối trách nhiệm: Tôi là kiến ​​trúc sư và nhà phát triển hàng đầu của ElectricAccelerator.

+0

Hey Eric! Tôi là người sử dụng điện. Thật tuyệt khi thấy bạn đăng bài. Số lượng các bản ghi gỡ lỗi và các tùy chọn được xây dựng thành emake khá đáng kinh ngạc. Sản phẩm tuyệt vời, muốn giới thiệu. – ThePosey

Các vấn đề liên quan