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

パスワード:


パスワード紛失

新規登録
検索
メインメニュー
アクセスカウンター
2024/05/17:16/21
2024/05/16:22/24

2024/03/18より397/1407
人気モジュール
No.1: フォーラム 101
No.2: QualNet概要 3
No.3: ニュース 2
日曜日からの合計
人気Browser&OS
No.1:巡回ロボット82
No.2:Unknown OS1
No.3:Windows XP1

No.1:どっかの巡回ロボット73
No.2:Majestic-12巡回ロボット6
No.3:Google巡回ロボット3

日曜日からの合計
メイン
   Application Layer Settings
     CBRのDEBUGについて
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
kss
投稿日時: 2010/9/2 14:42
新米
登録日: 2010/5/7
居住地:
投稿: 3
CBRのDEBUGについて
Qualnet初心者です。

CBRでシミュレーションを行っており、詳細なログを出力したく
app_cbr.cppに

#define DEBUG

を追加してデバッグを出力させておりました。
Qualnet 4.0では問題なく出力できていたのですが、

最近、5.0.2で同様のことをしようと追記したのですが、
シミュレーションを実行すると
illegal instructionのエラーが出て、うまく出力されません。

どこが悪いのかわからないのですが、アドバイスいただけないでしょうか。
よろしくお願いいたします。
hed
投稿日時: 2010/9/3 14:01
一人前
登録日: 2006/7/3
居住地: 京都
投稿: 81
Re: CBRのDEBUGについて
デバッグ文をデバッグしました。

CBR Client: Node 19 created new cbr client structure
    localAddr = 0.0.0.19
    remoteAddr = 0.0.0.17
    interval = 5.000000000
    sessionStart = 70.000000000S
セグメントエラー (coreを出力しました)


となったはずなので、下記の場所において、


../libraries/developer/src/app_cbr.cpp
 833 #ifdef DEBUG
 834     {
 835         char clockStr[MAX_STRING_LENGTH];
 836         char localAddrStr[MAX_STRING_LENGTH];
 837         char remoteAddrStr[MAX_STRING_LENGTH];
 838
 839         IO_ConvertIpAddressToString(&cbrClient->localAddr, localAddrStr);
 840         IO_ConvertIpAddressToString(&cbrClient->remoteAddr, remoteAddrStr);
 841
 842         printf("CBR Client: Node %u created new cbr client structure\n",
 843                node->nodeId);
 844         printf("    localAddr = %s\n", localAddrStr);
 845         printf("    remoteAddr = %s\n", remoteAddrStr);
 846         TIME_PrintClockInSecond(cbrClient->interval, clockStr);
 847         printf("    interval = %s\n", clockStr);
 848         TIME_PrintClockInSecond(cbrClient->sessionStart, clockStr, node);
 849         printf("    sessionStart = %sS\n", clockStr);
 850         printf("    numBytesSent = %u\n", cbrClient->numBytesSent);
 851         printf("    numPktsSent = %u\n", cbrClient->numPktsSent);
 852         printf("    itemsToSend = %u\n", cbrClient->itemsToSend);
 853         printf("    itemSize = %u\n", cbrClient->itemSize);
 854         printf("    sourcePort = %ld\n", cbrClient->sourcePort);
 855         printf("    seqNo = %ld\n", cbrClient->seqNo);
 856     }
 857 #endif /* DEBUG */


new D_Int64Obj(&cbrClient->numBytesSent));
しているにもかかわらず、
850 printf(" numBytesSent = %u\n", cbrClient->numBytesSent);
で、printfしているからです。

32bitコンパイラ(Linux)の場合は、
850 printf(" numBytesSent = %llu\n", (Int64) cbrClient->numBytesSent);
で大丈夫です。

CBR Client: Node 19 created new cbr client structure
    localAddr = 0.0.0.19
    remoteAddr = 0.0.0.17
    interval = 5.000000000
    sessionStart = 70.000000000S
    numBytesSent = 0
    numPktsSent = 0
    itemsToSend = 10000
    itemSize = 512
    sourcePort = 1024
    seqNo = 0
CBR Client: Node 19 starting client at 70.000000000S


kss
投稿日時: 2010/9/6 10:23
新米
登録日: 2010/5/7
居住地:
投稿: 3
Re: CBRのDEBUGについて
hedさん 

ご丁寧に説明いただき、ありがとうございます。
記載のとおり修正すれば、正常にDEBUGを出力することができました。
kss
投稿日時: 2010/9/6 10:26
新米
登録日: 2010/5/7
居住地:
投稿: 3
Re: CBRのDEBUGについて
hedさん 

ご丁寧に説明いただき、ありがとうございます。
記載のとおり修正すれば、正常にDEBUGを出力することができました。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ
Copyright c KOZO KEIKAKU ENGINEERING Inc. All Rights Reserved.
XOOPS Cube PROJECT