0
最近,我遇到了一個代碼片段的問題,它不返回期望值,這導致應用程序失敗。關於ACE框架的查詢
的代碼使用以下命令內置在RedHat Linux 7.1 -
g++ ace-test.cpp -I<path-to-ace-6.2-root> -L<path-to-ace-6.2-root>/ace/Linux -g -lACE
代碼段正在建造被粘貼下面 -
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include "ace/MEM_Addr.h"
#include <iostream>
using namespace std;
int main(int argc, char* []) {
ACE_MEM_Addr addr ;
cout << "ACE_MEM_Addr::addr.get_host_name() " << addr.get_host_name() << endl ;
}
在執行時,所述代碼打印以下行
ACE_MEM_Addr::addr.get_host_name() **unknown**
在最近修補過的運行linux的系統上。
在不修補的不同系統上,相同的代碼返回正確的主機名。
我想弄清楚哪個補丁導致了這個問題,但無法取得很大進展。
如果有人可以請延長一點幫助,將不勝感激。
如果需要,我可以分享已應用的補丁列表。
嘗試在'strace'下運行你的程序來查看它的功能。 – melpomene
謝謝!很快嘗試 – ANSI
嗨@mepomene,Strace證明非常有用!非常感謝 !通過比較所做的系統調用,我發現代碼的工作版本是從/ etc/hosts讀取條目,而「破損」的版本是檢查ipv6配置。任何可能導致它的想法? URL顯示strace輸出的比較再次感謝您的幫助! – ANSI