Japan QualNet Community Forums Japan QualNet Community Forums
Welcome Guest 
ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
検索
メインメニュー
アクセスカウンター
2024/05/10:5/5
2024/05/09:21/23

2024/03/11より374/1385
人気モジュール
No.1: フォーラム 101
No.2: QualNet概要 6
日曜日からの合計
人気Browser&OS
No.1:巡回ロボット91
No.2:Linux3
No.3:Unknown OS1

No.1:どっかの巡回ロボット86
No.2:Baidu巡回ロボット3
No.3:Safari3

日曜日からの合計
メイン
   Scenario Setup & Configuration
     nmake
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
umush
投稿日時: 2016/11/17 18:16
半人前
登録日: 2016/9/16
居住地:
投稿: 23
Re: nmake
> 実際に、node->networkData.networkProtocol = IPV4_ONLY;の部分が実行されていることを確認したということですか?

確認した結果です.
node->networkData.networkProtocol = 1
と出力されました.
この"1"は調べたところIPV4_ONLYです.
なので
node->networkData.networkProtocol =
MAPPING_GetNetworkProtocolTypeForNode(node, node->nodeId);
と更新されたあとにswitch文の中で
switch (node->networkData.networkProtocol)
{
  case IPV4_ONLY:
{
NetworkIpPreInit(node);
break;
}
がありますが,出力がIPV4_ONLYなので
この中を通ってることは分かりました.
ここまでが現状です.
hiro
投稿日時: 2016/11/17 18:56
長老
登録日: 2005/7/16
居住地:
投稿: 452
Re: nmake
以下の部分が実行されているのであれば、
case IPV4_ONLY:
{
NetworkIpPreInit(node);
break;
}
最後のbreak;でswitchブロックから抜けるので、
default:の処理は行われないです。
network.cppを改造していますか?
また、NetworkIpPreInit関数を改造していますか?

というか、ここまでわかっているのであれば
デバッガで一行単位で実行した方が問題解決が早くありません?
デバッガを使わなくても、どこがどの順で実行されているかを
確認しながら進めれば問題点が発見できるような気がします。
umush
投稿日時: 2016/11/17 19:08
半人前
登録日: 2016/9/16
居住地:
投稿: 23
Re: nmake
>network.cppを改造していますか?
また、NetworkIpPreInit関数を改造していますか?

どちらも改造していません.
また先ほどの結果はCommand-Line上で実行させました.
hiro
投稿日時: 2016/11/17 20:13
長老
登録日: 2005/7/16
居住地:
投稿: 452
Re: nmake
そうですか、ではちょっと視点を変えます。

node.hとnode.cppに対して改造を行っているとのことですが、
改造後にnamke cleanしていますか?
node.hの改造というのは、何らかのメンバ追加でしょうか。
ざっくりでかまいませんので教えて下さい。
同様にnode.cppの改造概要を教えて下さい。

なお、改造部分を含め実際のソースコード添付や
引用は不要です(というか控えて下さい)。
umush
投稿日時: 2016/11/17 20:49
半人前
登録日: 2016/9/16
居住地:
投稿: 23
Re: nmake
>改造後にnamke cleanしていますか?
しています.

>node.hの改造というのは、何らかのメンバ追加でしょうか。
ざっくりでかまいませんので教えて下さい。
キャッシュさせたいのでキャッシュ機能の構造体を用意,と,いくつか追加しています.その中でキャッシュサイズなどをInt32で用意しています.

>同様にnode.cppの改造概要を教えて下さい。
自分で作成したキャッシュのヘッダーファイルをinclude,
キャッシュサイズなどの変数に初期値を与えています.
(変数 = 0;のように)
hiro
投稿日時: 2016/11/17 22:53
長老
登録日: 2005/7/16
居住地:
投稿: 452
Re: nmake
では初めにnode.hについて。
追加はstruct Nodeにも行っていますか。
追加している場合、
どの場所(どのメンバの前あるいは、後ろ)に追加していますか。
umush
投稿日時: 2016/11/18 14:57
半人前
登録日: 2016/9/16
居住地:
投稿: 23
Re: nmake
AdaptationData adaptationData;
の後にキャッシュ系のメンバを追加して,
struct Nodeの中の最後に
payloadDataSize,packeterror,receiveErrorOccurredをint型で追加しています.(この3つは今回のキャッシュ系には関係ない)
hiro
投稿日時: 2016/11/18 19:06
長老
登録日: 2005/7/16
居住地:
投稿: 452
Re: nmake
情報ありがとうございました。
具体的なメンバ詳細はともかく、node.hに対する追加場所は
たぶん問題なさそうですね。

ということは、node.cppに対する改造の確認が必要です。
問題が出た関数NETWORK_PreInitの前に実行される処理で
改造を行った部分の確認とおいことです。

まず、Node作成/初期化を行うNODE_CreateNode関数と、
NETWORK_PreInit関数が実行される順序を確認して下さい。

もし、NODE_CreateNode関数に追加した初期化処理部分に
問題があれば、それ以降に実行される処理に影響が出る
可能性があります。

ついでですが、
node->networkData.networkProtocol が IPV4_ONLY であるかとは
確認ができているということでした。さらに、
switch文の以下の部分が実際に実行されている、という確認は
終わっていると、思ってよいですか。
case IPV4_ONLY:
{
NetworkIpPreInit(node);
break;
}
実際にNetworkIpPreInit関数が呼び出されていて、
きちんとbreak;に戻っているという確認のことです。

にもかかわらず、今回の問題はdefault:の部分も
実行されているという現象ですよね。

デバッガ使ってみませんか、このように1日単位で相互に
情報交換するよりも早く、すぐに原因がわかると思いますよ。
umush
投稿日時: 2016/11/18 20:42
半人前
登録日: 2016/9/16
居住地:
投稿: 23
Re: nmake
node.cppの中の追加した初期化のところを確認したところ,初期化する場所ではなく初期化の設定がうまくできていなかったようで,その部分を直したところ直りました.

ご迷惑をおかけしました,ありがとうございました.
hiro
投稿日時: 2016/11/20 13:21
長老
登録日: 2005/7/16
居住地:
投稿: 452
Re: nmake
解決してよかったですね。もう見ていないかもしれませんが
どの部分がうまくできていなくて、どのように直したのか
という情報を公開して頂ければ他の方々の参考になるかもしれません。
« 1 2 (3)
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ
Copyright c KOZO KEIKAKU ENGINEERING Inc. All Rights Reserved.
XOOPS Cube PROJECT