Спасибо за вашу ценную информацию. Код работает нормально. Я могу добавить вложение, добавив следующий код.
private Multipart _multipart;
_multipart = new MimeMultipart();
public void addAttachment(String filename,String subject) throws Exception {
BodyPart messageBodyPart = new MimeBodyPart();
DataSource source = new FileDataSource(filename);
messageBodyPart.setDataHandler(new DataHandler(source));
messageBodyPart.setFileName(filename);
_multipart.addBodyPart(messageBodyPart);
BodyPart messageBodyPart2 = new MimeBodyPart();
messageBodyPart2.setText(subject);
_multipart.addBodyPart(messageBodyPart2);
}
message.setContent(_multipart);
Возможно, вам поможет такой инструмент, как KCacheGrind . Он генерирует графы вызовов на основе фактических вызовов и не может предварительно сгенерировать граф вызовов без фактического запуска программы, что может не соответствовать вашим потребностям, но опять же может.
Похоже, вы хотите получить блок-схему исходного кода C («решения», «блоки кода»).
Что-то вроде этой Блок-схемы C ?
Чтобы сделать это правильно, особенно. для кода ядра Linux я ожидаю, что вам придется сначала предварительно обработать код, чтобы избавиться от макросов и условий. Я предполагаю, что GCC построит такой график внутренне, и что вы должны иметь возможность получить этот график.
Поток истории очень удобен для изменений / различий в нескольких версиях.
Codeplex имеет проект Визуализатор зависимостей , который также поддерживает C.
] Gprof2Dot может отображать профиль, это также даст вам динамическую информацию.
CodeViz также (статический инструмент) будет работать.
Если вы используете gcc, gcc-xml имеет плагин интроспектора также делает это.
Doxygen выполняет некоторую «визуализацию»,
но вам нужно немного поработать над кодом, чтобы его можно было использовать.
Еще одна интересная вещь, которую стоит проверить, - это lxr
Linux Cross Referencer - это программный набор инструментов для индексирования и представления репозиториев исходного кода . Первоначально LXR был нацелен на исходный код Linux, но оказался пригодным для широкого спектра программных проектов. lxr.linux.no в настоящее время запускает экспериментальную ветвь программного обеспечения LXR.