2015-05-02 25 views
12

Tôi nghĩ rằng gc bao gồm thông tin gỡ lỗi theo mặc định. Tuy nhiên, tôi muốn tránh sự giải mã.Tránh gỡ lỗi thông tin trên golang

Làm cách nào để xóa thông tin gỡ lỗi khi biên dịch mã đi bằng gc?

Lưu ý: Sử dụng gccgo không giải quyết được sự cố. Nếu tôi không biên dịch với '-g' thực thi được chia và chỉ ra:

không có thông tin gỡ lỗi trong errno thực thi ELF -1 lỗi nghiêm trọng: không có thông tin gỡ lỗi trong thực thi ELF

runtime stack: không có thông tin gỡ lỗi trong errno thực thi ELF -1 hoảng loạn trong hoảng loạn"

Trả lời

9

Các mối liên kết đi có một lá cờ -w giúp chặn đứng lùn gỡ lỗi hệ thông tin Bạn có thể cung cấp cờ mối liên kết để đi công cụ xây dựng các lệnh như sau:.

go build -ldflags '-w' 

Một cách tiếp cận khác trên nền tảng Linux/Unix đang sử dụng lệnh strip đối với tệp nhị phân đã biên dịch. Điều này dường như tạo ra các tệp nhị phân nhỏ hơn so với tùy chọn trình liên kết ở trên.

+1

Tôi buộc một dấu hiệu hoảng sợ và ngăn xếp hiển thị rõ ràng tên hàm và số dòng sử dụng cả hai giải pháp: S – dv1729

+3

Bất kỳ thông tin nào mà thời gian chạy có thể vẫn yêu cầu vẫn ở dạng nhị phân. Điều này bao gồm thông tin cần thiết cho thông điệp hoảng sợ, nhập thông tin, v.v. Tôi không biết bất kỳ cách nào để loại bỏ nó. Điều này khác với thông tin gỡ lỗi thuần túy. – snap

+6

Dải không được Nhóm Go đề xuất, nó có thể phá vỡ tệp thi hành. Tốt hơn là sử dụng 'go build -ldflags '-s'' để bỏ qua bảng biểu tượng, tuy nhiên tôi không chắc liệu bạn có thể ẩn hoàn toàn mọi tên biểu tượng hay không. – siritinga

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