2010-11-22 17 views
5

Chúng tôi đã chạy trong nhiều năm với BoundsChecker cho Visual C++ 6 (Tôi nghĩ rằng đó là BoundsChecker 5 hoặc 6, quá). Chúng tôi đã upgaded để VS2008 (cuối cùng!), Và bây giờ cần một theo dõi cho BoundsChecker đã lỗi thời.C++ BoundsChecker followup

Cảnh quan như thế nào?
Có công cụ nào ở ngoài đó?
Bất kỳ trẻ em mới nào trong thành phố?
Bất kỳ ý tưởng mới nào đối phó với các vấn đề chúng tôi đã sử dụng trình thu thập bộ nhớ?
Trải nghiệm gần đây của bạn với các công cụ này?
Đề xuất?

Ứng dụng chính là C++ với nhiều DLL COM, chúng tôi đang tìm kiếm để theo dõi nguồn gốc, C++ và rò rỉ COM và các đối tượng. Bounds Checker cho kích thước đó đã là một nỗi đau trong hiệu suất, phân loại ra hàng loạt dữ liệu và một số hạn chế của nó.

Hỗ trợ cho các ứng dụng được quản lý (chủ yếu là C#) là bắt buộc, mặc dù đó có thể là một công cụ riêng biệt.


liên quan (nhưng IMO không đầy đủ) câu hỏi: Modern equivalent of BoundsChecker for Visual Studio 2008


[sửa]

Regardign bình luận, "Trong C hiện đại ++, bạn chỉ cần sử dụng các loại tự kiểm tra, và giới hạn không bao giờ bị hỏng ":

Con trỏ thông minh được tính tham chiếu có thể có tham chiếu tuần hoàn. Việc kết hợp các thành phần COM vốn đã không an toàn, vì nó đòi hỏi nhiều quản lý bộ nhớ thủ công. Tôi đã có một dịch vụ bên thứ ba không có giao diện người dùng bị rò rỉ xử lý GDI vì vậy nó đã làm hỏng các thử nghiệm qua đêm của chúng tôi - nhà cung cấp đổ lỗi cho nó trên một API Microsoft "lạ". Tôi phải giao tiếp các thư viện dựa trên C, tôi có rất nhiều mã kế thừa giả định việc phân bổ thủ thuật theo nghĩa Bí quyết số là một điều tốt và tên biến dài hơn 3 chữ cái dành cho người đánh máy. Tôi có mã từ các kỹ sư cho một người std::vector<double>::iterator trông đáng sợ hơn nhiều so với double ***, chúc may mắn phát triển và thử nghiệm chúng mà không có nền tảng vững chắc trong xử lý tín hiệu. Vì vậy, trừ khi bạn đến đây, viết lại và đóng gói cốt lõi của một triệu dòng mã trong các lớp C++ chống lừa đảo và chắc chắn rằng một vài chục sản phẩm vẫn hoạt động như trước, giữ cho thông minh của bạn-assery cho chính mình. Chúc vui vẻ! Tôi ước gì tôi sẽ không cần một bộ kiểm tra bộ nhớ, nhưng tôi có. Cảm ơn bạn.

+1

Trong C++ hiện đại, bạn chỉ cần sử dụng các loại tự kiểm tra, và giới hạn không bao giờ bị hỏng. – Puppy

+0

Điều đó gần như thú vị, DeadMG. – peterchen

+0

@Michael - Chúc mừng!: D – peterchen

Trả lời

2

Tôi có một ứng dụng lớn (ở đây tại nơi làm việc), và kiểm tra giới hạn mới 10.5 (hỗ trợ các ứng dụng 64 bit bây giờ) khá nhiều công trình với nó. Thủ thuật tối đa không phải là bật tất cả các tính năng kiểm tra của trình kiểm tra giới hạn devpartner cùng một lúc. Chỉ bật tính năng rò rỉ bộ nhớ hoặc bật một số tính năng khác, sau đó chạy ứng dụng của bạn. Và bằng mọi cách loại trừ các mô-đun bạn không cần. Có một vài điều bạn có thể sử dụng để điều chỉnh cài đặt của mình để cài đặt nhanh hơn. Nhưng có, nó có một hit hiệu suất. Nhưng đó là tên của ballgame.

Thanh tra song song của Intel đã cho chúng tôi hàng ngàn và hàng ngàn kết quả dương tính giả. Không sử dụng nó.

Làm sạch chỉ hoạt động trên ứng dụng 32 bit. tức là các ứng dụng gốc nhỏ 32 bit. Quên về việc sử dụng nó với một ứng dụng C++ được quản lý.

Và chỉ để ghi lại, nếu bạn có một ứng dụng 32 bit lớn, các công cụ phân tích bộ nhớ nói chung sẽ không hoạt động được nhiều, bởi vì chi phí bộ nhớ lớn. Và vì bạn có bộ nhớ rất hạn chế trong không gian địa chỉ 32 bit, bạn nhanh chóng chạy ra khỏi phòng và các công cụ không thành công.

+0

Về mặt lý thuyết, bạn có thể di chuyển tất cả thông tin theo dõi bộ nhớ sang một tiến trình khác, nhưng điều đó sẽ làm cho công cụ phân tích bộ nhớ thậm chí còn chậm hơn so với nó (có lẽ). –

2

Chúng tôi đã đánh giá Boundschecker, Thanh tra của Intel và Thanh lọc.

Tất cả chúng đều ít nhiều.

Đối với ứng dụng chính của chúng tôi, BoundsChecker sẽ không khởi động sau nhiều giờ; nó chỉ hoạt động cho một vài ứng dụng nhỏ hơn; nhưng tìm thấy một vài thứ (tôi nghĩ chúng tôi vẫn đang liên lạc với họ để tìm hiểu điều đó)

Thanh tra của Intel hoạt động, nhưng không cụ mã, nó chạy trên thực thi chỉ (có thể hoạt động tốt hơn khi được sử dụng với toàn bộ bộ sản phẩm của Intel).

Làm sạch không thành công một cách thảm hại; chúng tôi không bao giờ có thể sử dụng nó.

Chúng tôi vẫn còn yếu kém về điều đó.

CPC

3

Tuyên bố từ chối trách nhiệm và cảnh báo: Tôi làm việc cho Micro Focus, chủ sở hữu của DevPartner Studio và các sản phẩm BoundsChecker.

BoundsChecker 10.5, một phần của DevPartner Studio 10.5 (mặc dù bạn có thể tự mua nó), hỗ trợ Visual Studio 2005, 2008 và 2010 không được quản lý mã cho các ứng dụng 32 và 64 bit về cơ bản giống như cách nó hỗ trợ các ứng dụng 32 bit trên Visual Studio 6.0. Trong khi tăng cường nó để hỗ trợ các ứng dụng X64, chúng tôi đã tìm và khắc phục một số vấn đề rất cũ, và bắt đầu làm việc bất chấp mã .NET 4.0 hiện diện trong một số ứng dụng VS 2010. Tôi nói "mặc dù" bởi vì .NET 4.0 quay ra làm nhiều thứ rất khó chịu trong không gian quy trình, làm một số việc mà Microsoft cảnh báo mọi người khác không làm, và có một số lượng nhất định khả năng chống lại công cụ như BoundsChecker, vốn là những virus khổng lồ.

Dù sao, kể từ khi phát hành (ngày 4 tháng 2), chúng tôi đã cập nhật nó để hoạt động trên Windows 7 SP1 (chưa được công khai), và theo như BoundsChecker có liên quan, chúng tôi làm việc với Visual Studio 2010 SP1 tốt. Chúng tôi cũng phát hiện ra một cái bẫy .NET 4.0 khó chịu và đã tìm ra cách ngăn chặn chúng tôi hạ gục chúng tôi. Những cải tiến và bản sửa lỗi này sẽ có sẵn trong bản cập nhật công khai tiếp theo của chúng tôi, hy vọng trong vòng một tháng tới.

+0

Nếu có thắc mắc liên quan đến Micro Focus DevPartner Studio hoặc BoundsChecker, vui lòng truy cập diễn đàn của chúng tôi tại http://community.microfocus.com/Forums/9_DevPartner. –

+0

Diễn đàn đã thay đổi và thay đổi vị trí. Hiện tại bạn đang ở http://community.microfocus.com/ –

1

Boundschecker: Tôi vừa mua một (& (^thuê bao mà chỉ được trợ tôi để sử dụng sản phẩm chết tiệt cho 99 ngày, vì vậy tôi khá damned buồn về điều đó) nhưng dù sao đi nữa tôi đã gặp rắc rối lớn bộ nhớ và suy nghĩ Tôi phải chạy thứ này, dường như bắt được rất nhiều điều thú vị, nhưng lại quá chậm chạp đến nỗi, tôi đã nói theo cách này: ứng dụng của tôi vẫn nằm trong mã init DLL, nó đã chạy trong ít nhất một vài giờ, Boundschecker đã từng là 'shit' trở lại trong vài ngày, nhưng có vẻ như nó thực sự là một đứa trẻ mồ côi công nghệ khác đang bị lừa bởi một cơ hội thực thể kinh doanh, như trình biên dịch borland.

Vì vậy, tôi thực sự thích nó khi nó hoạt động, nó có rất nhiều thông tin tuyệt vời. Tôi chỉ cần xem liệu tôi có thể thực sự nhận được bất kỳ kết quả tốt nào không. Nó hiện đang sử dụng RAM 4 GB và thậm chí chưa bắt đầu hoàn toàn. Kể từ khi tôi sử dụng win7/64 với một phiên bản nhà tê liệt mà sẽ chỉ nhận ra 12GB, tôi có thể hết bộ nhớ trước khi bất cứ điều gì thực sự thú vị xảy ra. Và nó sẽ là đôi khi một vài ngày kể từ bây giờ ...

+0

Bạn đã có may mắn với Trình xác minh ứng dụng của Microsoft chưa? –

+0

Giá: $ 99 là giá rẻ so với giá bình thường, giá khởi điểm là $ 695. Hiệu suất: Chúng tôi rất ý thức về điều này và đang làm việc để cải thiện sản phẩm, nhưng khi bạn xem xét sản phẩm đang cố gắng làm gì, bạn không thể yêu cầu chính xác hoàn toàn và tác động hiệu suất thấp cùng một lúc. Chúng ta có thể hy sinh độ chính xác cho tốc độ, nhưng chúng ta sẽ bị rang vì bị cẩu thả. Chúng ta thường hy sinh tốc độ cho độ chính xác, và sau đó chúng ta bị rang vì bị chậm. Đặt tên chất độc của bạn. –

+0

"Boundschecker được sử dụng để ... trong Numega ngày, nhưng có vẻ như nó thực sự là một đứa trẻ mồ côi công nghệ đang được peddled bởi một thực thể kinh doanh cơ hội, như trình biên dịch borland." - Bạn không xa sự thật, nhưng hãy xem xét một điều: cả BoundsChecker và các ứng dụng nó kiểm tra đã phát triển rất nhiều kể từ những năm 1990. BoundsChecker có thể đã làm việc nhanh chóng trên ứng dụng điển hình của bạn năm 1990, nhưng kể từ đó ứng dụng điển hình của bạn đã phát triển, và BoundsChecker cũng đã phát triển đáng kể. Một số tăng trưởng đó là chất béo được bổ sung bởi các nhà thiết kế có thiện chí (nhưng bị hiểu sai). –