小弟用VS2003产生map文件,在工程属性Linker中分别选择了 Yes(/MAP); Yes(/MAPINFO:EXPORTS); Yes(/MAPINFO:LINES) 后,打开map文件,却没有所需的line numbers信息。现在很急,请知道的高手赐教,应该怎样操作才能得到代码行信息。谢了!

解决方案 »

  1.   

    #include<iostream> 
    #include<fstream> 
    #include<string> using namespace std; int main(void) 

    cout<<"input file name"<<endl; 
    string filename; /*文件名*/ 
    char c[256]; /*保存每行数据*/ 
    int line=0; /*存储行数*/ 
    double number=0;/*存储字数*/ 
    cin>>filename; 
    ifstream in(filename.c_str()); 
    if(!in) 

    cout<<"Cannot open OUT file.\n"; 
    return 1; 
    } while(!in.eof()) 

    in.getline(c,255); /*读取一行*/ 
    number+=strlen(c);/*加上当前行字数*/ 
    line++; /*计算行数*/ 

    in.close(); cout<<"Line="<<line<<endl; 
    cout<<"number of character ="<<number<<endl; 
    }
      

  2.   

    我是在别人blog上看到,他们生成的map文件中,就有每行代码的运行地址,如下所示:
    Line numbers for .\Release\MAPFILE.obj(F:\MAPFILE\MAPFILE.cpp) segment .text    24 0001:00000000    30 0001:00000004    31 0001:0000001b    32 0001:00000027
        35 0001:0000002d    53 0001:00000041    40 0001:00000047    43 0001:00000050
     可是我用他上面所说步骤,怎么也不产生这些line信息,唯一不同的是他用VC,我用的是VS2003,请高手指点,究竟在VS2003中,具体怎样操作,能生成带代码行地址的map文件。谢谢了!
      

  3.   

    这是用程序崩溃地址查找错误的源代码行,请高手指点下,究竟怎样操作,能使map文件中含有每行的运行地址信息,谢谢先!