Как будто вы пытаетесь получить доступ к объекту, который является null
. Рассмотрим ниже пример:
TypeA objA;
. В это время вы только что объявили этот объект, но не инициализировали или не инициализировали. И всякий раз, когда вы пытаетесь получить доступ к каким-либо свойствам или методам в нем, он будет генерировать NullPointerException
, что имеет смысл.
См. Также этот пример:
String a = null;
System.out.println(a.toString()); // NullPointerException will be thrown
Хрюканье является инструментом, созданным сверху фронтенда C++ Elsa. Свинина Mozilla является ветвлением Elsa/Oink.
Doxygen делает некоторый анализ потока управления и генерирует графики. Это не может быть тем, что Вы ищете, но я нашел их полезными для взгляда на.
работа статического анализа Mozilla , вероятно, достойная внимания.
Шплинт , кажется, подходит для C.
, Если бы Вы не определили открытый исходный код, я сказал бы Gimpel Software , PCLint является, вероятно, одним из лучших инструментов, доступных для статического кода, регистрируясь в C++. Но, конечно, это не открытый исходный код.
MAC OSX:
brew install splint
Разрабатываемый на данный момент, но лязг делает анализ C и предназначен для обработки C++ со временем. Это - часть проект LLVM.
Обновление : В то время как целевая страница говорит, что "Анализатор является непрерывным происходящим работой", это, тем не менее, теперь , зарегистрировал как статический анализатор и для C и для C++.
Вопрос: , Как я могу выполнить GCC/Clang для статического анализа? (только предупреждения)
Параметр компилятора: - [fsyntax-только 117]
Относительно компилятора GNU gcc уже имеет встроенную опцию, которая включает дополнительный предупреждение к тем - Стена. Опция -Weffc ++ , и это о нарушениях некоторых инструкций Scott Meyers опубликовано в его книгах" Эффективный и Более эффективный C++ ".
В особенности опция обнаруживает следующие объекты:
Если по Открытому исходному коду, Вы действительно имели в виду "свободный", то Microsoft предбыстрый анализ является хорошей. Только для Windows, конечно. Это полностью интегрируется в Visual Studio & компилятор. например:
cl /analyze Sample.cpp
Это волшебство. В частности, во время магии (описано в perlsyn
, perlop
и, возможно, в других местах, которые я не помню). Perl позволяет использовать некоторые сокращенные обозначения. Если вы хотите увидеть, что Perl делает за вашей спиной, вы можете использовать B :: Deparse
. Вот файл, в котором используется сокращенный цикл:
#!/usr/bin/perl
use strict;
use warnings;
opendir my $dir, "/tmp" or die "$!";
while (my $file = readdir($dir)) {
print "$file\n";
}
Если вы запустите perl -MO = Deparse filename.pl
, вы получите код, который видит Perl:
Библиотека C # ( http://developer.amazonwebservices.com/connect/entry.jspa?externalID=1133 ) включает макетную библиотеку, которая звучит так, как будто она может сделать трюк для вас. Я не использовал функцию имитации, но я считаю, что он использует XML-файл в качестве резервного хранилища для хранения моделируемых доменов.
Следует помнить, что несколько месяцев назад Amazon выпустила AWS SDK для .Net ( http://aws.amazon.com/sdkfornet/ ). Я до сих пор использую библиотеку C # и не успел заглянуть в AWS SDK, поэтому я не уверен, включена ли в нее функциональность макета. На основе этого потока , похоже, что AWS SDK является сводом всех различных сервисных SDK. (включая библиотеку SimpleDB C #), поэтому она может содержать макет.
-121--3186059-1) Какой интерес у нас есть к использованию JMS? Каковы преимущества JMS? 2) В какая ситуация предпочитает JMS против Компонент сущности?
Вы подходите к работе, пока есть только один потребитель . В противном случае потребуется схема блокировки, чтобы одно и то же сообщение не доставлялось дважды и т.д. Это то, что JMS предлагает из коробки: транзакционное производство и потребление с брокером JMS, управляющим всеми проблемами доставки с несколькими потребителями/производителями .
Другими преимуществами JMS являются качество обслуживания и управление , например, попытка повторной доставки, очередь мертвых сообщений, управление загрузкой, масштабируемость, кластеризация, мониторинг и т.д.
JMS также поддерживает функцию публикации или двухточечной связи.
Это немного похоже на сравнение инструкции JDBC для вставки одной строки в базу данных с полнофункциональным ORM. Оба работают, чтобы вставить строку в БД, но ORM обеспечит гораздо больше, плюс вы не заново изобретаете колесо для решения низкоуровневых проблем... (аналогия не так велика, но хорошо)
Я предлагаю вам взглянуть на часто задаваемые вопросы .
-121--2943722-Microsoft PREFast также доступен в комплекте драйверов Windows. Версия 7,0 может быть загружена здесь .
В документах Майкрософт указано, что его следует запускать только по коду драйвера, но в этом (старом) блоге описаны шаги по его запуску. Возможно, его можно интегрировать в обычный процесс сборки?