掲示板一覧   -   トピック一覧
   Enterprise Architect 全般
     シーケンス図


スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 トピック
tme(未登録ゲスト)
投稿日時: 2010-10-3 21:54

シーケンス図

Enterprise Architect 8.0 の評価版を基にシーケンス図が作成できるかどうかを評価しているのですが,作成できません。
ブレークポイントをつけなければ,動作するのですが,ブレークポイントをしかけるとブレークポイントに止まらず,その手前で終了してしまうため,デバック結果からのシーケンス図作成ができません。どうすればよろしいでしょうか?

なお,環境は Visual studio C++.NET2003と,Visual studio 2008 C++です。どちらでも実施しましたが,同じ現象でした。
tkouno
投稿日時: 2010-10-4 9:17
EA Administrator
投稿: 3939

Re: シーケンス図

Enterprise Architectをご評価くださいまして、ありがとうございます。
お手数をおかけし申し訳ございません。


ご指摘の中の「その手前で終了してしまう」というのがどのような現象なのかが、申し訳ございませんがうまく理解できませんでした。


なお、デバッグ対象のアプリケーションによっては、EAでブレークさせることによって動作のタイミングなどが変わり、正常に動作しなくなるものもあるようです。
(本来、外部から情報を取得したり動作を停止させたりすることは考慮していないと思いますので)


このような場合には、ブレークポイントではなく、「記録開始マーカー」を利用することで、動作を停止させることなく、記録だけを取得することができます。

ソースコードを表示させた状態で、設定する行の左端の余白で右クリックして「記録開始マーカーの追加」(日本語評価版の場合)を設定すると配置できます。
ヘルプファイルの「記録マーカーの設定」のページもご覧ください。

ヘルプファイルは以下のページからダウンロードすることもできます。
https://www.sparxsystems.jp/ea_documents.htm#help


また、過去の事例では、アンチウイルスソフトが有効になっているとデバッグできないという問題もありました。この場合には、アンチウイルスソフトを一時的に無効にすることで、正しく動作するようになりました。


お忙しい中お手数をおかけしますが、ご確認のほどよろしくお願いします。
なお、もし問題となっている環境一式をサポートにご送付いただけるのであれば、こちらで調査することもできます。あわせてご検討ください。


tme(未登録ゲスト)
投稿日時: 2010-10-4 22:11

Re: シーケンス図

お返事いただきありがとうございます。

手前で終了してしまうというのは文字通りそのままなのですが,
簡単に言うと,Debug Runをbreakpointをつけず実行した場合,
最後まで実行してくれますが,breakpointをつけるとその手前で
終了してしまうため,記録ができないということです

なお,記録開始マーカーの場合は,最後まで実行するのですがログが残っていないという状態になっています。

VC++で作ったのはコンソールアプリです。通常のVisualC++の環境では,問題なく動作します。
tme(未登録ゲスト)
投稿日時: 2010-10-4 22:52

Re: シーケンス図

アンチウィルスソフトを停止させて実施しましたが,まったく変わりはないです。

評価したいだけなので,ソースは下記の簡単なものです。


===============(C_Co.cpp)===========================
#include "C_Co.h"

C_Co::C_Co(void)
{
m_Cr = new C_r;
}

C_Co::~C_Co(void)
{
delete m_Cr;
}

void C_Co::R(void)
{
m_Cr->pl();
}

void main()
{
C_Co *m_C;

m_C = new C_Co;
m_C->R();

delete m_C;
}
=========================================

===============(C_Co.h)===========================
#pragma once
#include "C_r.h"

class C_Co
{
private:
C_r *m_Cr;
public:
C_Co(void);
~C_Co(void);
void R(void);
};
==================================================

===============(C_r.cpp)===========================
#include "C_r.h"

C_r::C_r(void)
{
}

C_r::~C_r(void)
{

}

void C_r::pl()
{
printf("This is a World \n");
}
=================================================

===============(C_r.h)===========================
#pragma once
#include <stdio.h>

class C_r
{
public:
C_r(void);
~C_r(void);
void pl();
};
=================================================
tkouno
投稿日時: 2010-10-5 8:30
EA Administrator
投稿: 3939

Re: シーケンス図

詳細な情報をお寄せくださいまして、ありがとうございました。

こちらで同じソースコードを元に環境を作成してみましたが、
特に問題なく、シーケンス図の作成ができました。

内容的に見ても、特に問題と思われる点はないようです。
可能性としては、デバッグ版で実行していなかったり、
動作解析の設定が不適切である、ということがあるかもしれません。


お手数をおかけしますが、このデバッグを実行した際に
出力サブウインドウには何が表示されていますでしょうか?
(出力サブウインドウは、メインメニューから「表示」→「出力」で表示できます。)

再度お手数をおかけし申し訳ございませんが、
ご確認のほどよろしくお願いします。
tme(未登録ゲスト)
投稿日時: 2010-10-5 22:56

Re: シーケンス図

break pointをつけてDebug Runをすると,
process exit code: 0xe0434f4dが出ています。

break pointなしであれば,
process exit code: 0x00000000です。

0xe0434f4dは例外が発生しているということのようですが,
通常のC++で動作するのになぜ起きるのでしょうか?

何か特別な設定が必要なのでしょうか?

ご教示お願いいたします。
tkouno
投稿日時: 2010-10-6 9:29
EA Administrator
投稿: 3939

Re: シーケンス図

ご返信ありがとうございました。

いただきました情報から、確かにブレークポイントが有効な場合に
何かの問題が起きているようです。

なお、「特別な設定」などは不要です。こちらの環境では、昨日いただきましたソースコードで、簡単にシーケンス図を作成できました。
(昨日の回答の画像にあるとおりです。)


もし可能であれば、今回の問題が起きる環境一式(VisualStudioのプロジェクトファイルと、対象のソースファイル一式)を
サポートにご送付いただけないでしょうか?

ご検討くださいますようお願いします。
tme(未登録ゲスト)
投稿日時: 2010-10-7 22:37

Re: シーケンス図

エラーの内容からVC++側の設定にあると思い,いろいろ調べた結果,自己解決しました。

マルチスレッドDLLを使用していたからだったようです。
もう少し複雑なソースでも試してみます。
ありがとうございました。

tkouno
投稿日時: 2010-10-8 8:59
EA Administrator
投稿: 3939

Re: シーケンス図

ご確認ありがとうございました。
自己解決されたとのことで、安心しました。
お手数をおかけし申し訳ございませんでした。

この機能はいろいろと面白いことができますので、ぜひ、いろいろなパターンで試してみてください。

今後ともよろしくお願いします。


スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ