2013-05-07 38 views
7

Tôi đã cài đặt phiên bản phát triển của Ruby 2 qua rbenv trên Mac OS X v10.8.3 và đang sử dụng phiên bản này để biên dịch một gem tôi đang làm việc. Tôi có một vấn đề bộ nhớ tôi muốn gỡ lỗi. Thật không may, bất cứ khi nào tôi chạy valgrind, gdb, hoặc cgdb trong bối cảnh của một rake spec, tôi nhận được một whole bunch of errors như thế này một:Làm cách nào để nhận được rbenv để giữ biểu tượng gỡ lỗi?

warning: Could not find object file "/private/var/folders/5f/h1s00nhn0rv4ckkpg4k_bwhr0000gn/T/ruby-build.20130331232604.54521/ruby-2.0.0-dev/main.o" - no debug information available for "main.c". 

Rõ ràng, rằng ruby-build thư mục không còn tồn tại.

Tôi nhận được series of likely-related errors từ valgrind. Dưới đây là ví dụ:

--2564-- /Users/jwoods/.rbenv/versions/2.0.0-dev/lib/libyaml-0.2.dylib: 
--2564-- dSYM directory is missing; consider using --dsymutil=yes 

Nếu tôi cố gắng sử dụng mà --dsymutil=yes lựa chọn, tôi nhận được lỗi đó là cơ bản giống như những từ gdb:

warning: (x86_64) /private/var/folders/5f/h1s00nhn0rv4ckkpg4k_bwhr0000gn/T/ruby-build.20130331232604.54521/ruby-2.0.0-dev/ext/openssl/ossl_bn.o unable to open object file 

mỗi câu trả lời cho một câu hỏi khác, tôi đã cố gắng chạy info target bên trong gdb. Here is the output.

Có cách nào tôi có thể hướng dẫn rbenv để đặt các biểu tượng gỡ lỗi ở đâu đó mà chúng sẽ không bị xóa?

Tôi đang sử dụng GCC 4.7.1, mà tôi đã cài đặt qua homebrew. Chuỗi phiên bản Ruby chính xác của tôi là ruby 2.1.0dev (2013-04-01 trunk 40029) [x86_64-darwin12.3.0] và phiên bản rbenv của tôi là 0.4.0.

+0

Vui lòng di chuyển các lỗi và đầu ra gdb vào câu hỏi của bạn. Liên kết có được cũ và/hoặc phá vỡ do liên kết-thối. Khi điều đó xảy ra, câu hỏi của bạn sẽ không thể sử dụng được cho những người muốn nhận câu trả lời cho cùng một vấn đề. Ngoài ra, bằng cách đặt thông tin của bạn ra khỏi trang web, bạn đang buộc những người có thể muốn giúp đỡ để đuổi nó xuống, mà lãng phí thời gian của họ. Giúp chúng tôi giúp bạn bằng cách đặt thông tin ở đây thay thế. –

+0

Bạn đã bao giờ tìm thấy một giải pháp cho điều này? Tôi có cùng một câu hỏi, chi tiết bao gồm. –

+0

Sắp xếp, mặc dù tôi chưa thử áp dụng nó vào «rbenv'. Tôi cho rằng khi bạn biên dịch rbenv và Ruby bạn phải thực sự chạy 'dsymutil' trên các tập tin nhị phân kết quả. Đây là cách duy nhất tôi có Mac để giữ biểu tượng gỡ lỗi của mình. –

Trả lời

1

Theo tài liệu cho ruby-build:

Cả ruby-xây dựng và rbenv cài đặt chấp nhận -k hoặc cờ --keep, mà nói với ruby-xây dựng để giữ nguồn tải về sau khi cài đặt. Điều này có thể hữu ích nếu bạn cần sử dụng gdb và memprof với Ruby.

Vì vậy hãy thử ruby-build install X -k, trong đó X là số phiên bản.