免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1130 | 回复: 4
打印 上一主题 下一主题

求救:关于struct定义的问题,为什么总是coredump,超级奇怪 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-10-12 20:53 |只看该作者 |倒序浏览
代码如下: 问题是,为什么只要把启用很多***********注释掉的那几行,程序就coredump ,是在想不出为什么了。请各位多多指点。
环境如下:
Forte C++ 6 update 2
        Sun WorkShop 6 update 2 Compilers C     
        Sun WorkShop 6 update 2 Compilers C++
        Sun WorkShop 6 update 2 Tools.h++ 7.1
        Sun WorkShop 6 update 2 Standard 64-bit Class Library for C++
        Sun WorkShop 6 update 2 Memory Monitor for C++
        Sun WorkShop 6 update 2 Visual
        Sun WorkShop 6 update 2 Development Environment
        Sun WorkShop 6 update 2 TeamWare
        Sun WorkShop 6 update 2 FileMerge
        Sun WorkShop 6 update 2 DBX Debugging Tools
        Sun WorkShop 6 update 2 Performance Analyzer
        Sun WorkShop 6 update 2 LockLint
        XEmacs 20.4 Source Distribution
        Sun WorkShop 6 update 2 Documentation Set



  1. #include <stdio.h>;
  2. #include <string.h>;
  3. #include <stdlib.h>;
  4. #define MAX_SECTOR_PER_BTS        100
  5. #define MAX_FA_PER_BTS                100
  6. #define MAX_SLINK_PER_BSC        100
  7. #define MAX_SLINK_PER_BSC        100
  8. #define MAX_BTS_PER_BSC     100
  9. #define MAX_RPP_PER_GAN     100
  10. #define MAX_PDSN_PER_GAN    100
  11. #define MAX_BSC_PER_MSC                100
  12. typedef unsigned char                  byte;
  13. typedef unsigned short int         word16;
  14. typedef unsigned long int          word32;

  15. enum Net_Element_Sts{
  16.                 EQUIP = 0,
  17.                 N_EQUIP = 1,
  18.                 MMC_BLK = 4       
  19. };

  20. typedef struct {
  21.     byte    seq_num;
  22.     byte    dummy[3];
  23.     word16  pdsn_id;
  24.     byte    status;
  25.     byte    evdo_flag;
  26.     word32  pdsn_ip_addr;
  27. } PLD_PDSNConf;  /* 1024 */
  28.                  /* pdsn_id */

  29. typedef enum {
  30.      NO7_ACT,
  31.      NO7_DACT,
  32.      NO7_INH,
  33.      NO7_UINH
  34. } NO7_Device_Status;


  35. typedef struct _Bts_Info {
  36.         unsigned short bts_id;
  37.         unsigned short bcp_id;
  38.         unsigned short status;
  39.         short num_cdma_ch;
  40.         char    bts_name[16];
  41. //        *****************struct Sec_Info {
  42. //        *****************        unsigned short sector_id;
  43.         //*****************        unsigned short status;
  44.         //*****************} sec[MAX_SECTOR_PER_BTS];
  45.         struct Fa_Info {
  46.                 unsigned short status;
  47.                 short band_class;
  48.                 short fa_kind;
  49.         } fa[MAX_FA_PER_BTS];
  50. }Bts_Info_FUNC;

  51. typedef struct
  52. {
  53.                 unsigned char        mlink_id;                       
  54.                 unsigned char        lnk_slc;        
  55.                 unsigned char        slk_mmc_sts;
  56. }Sl_Info_FUNC;

  57. typedef struct _Bsc_Info {
  58.                 unsigned short bsc_id;               
  59.                 unsigned short status;
  60.                 unsigned short number_of_mlink;
  61.                 unsigned short number_of_bts;
  62.                 struct Signalling_Point_Info {                        // Add on 2003-12-24
  63.                         word32                Orig_Pc;
  64.                         byte                 lksMmcSts;
  65.                 }signalling_point;
  66.                 Sl_Info_FUNC signalling_linkTP[MAX_SLINK_PER_BSC];
  67.         Bts_Info_FUNC bts[MAX_BTS_PER_BSC];
  68. }Bsc_Info_FUNC;
  69.        
  70. typedef struct _Bss_Net_Info {       
  71.                 unsigned short number_of_bsc;
  72.                 unsigned short number_of_gan;
  73.                  struct Gan_Info {
  74.                          unsigned short gan_id;
  75.                          unsigned short status;
  76.                          struct Pcf_Info {
  77.                                  unsigned char        rpp_id;                       
  78.                                  unsigned char        status;                       
  79.                                  word32        rpp_ip_addr;              
  80.                          } pcf[MAX_RPP_PER_GAN];
  81.                         PLD_PDSNConf PdsnData[MAX_PDSN_PER_GAN];
  82.                  }gan;
  83.                  Bsc_Info_FUNC bsc[MAX_BSC_PER_MSC];
  84. }Bss_Net_Info;

  85. int loadFromFile(Bss_Net_Info &tempInfo)
  86. {
  87.         char filename[100];;
  88.         strcpy(filename,"./AG_CONF.dat");
  89.         FILE* fp = fopen(filename,"r");
  90.         //Bss_Net_Info bss_net_info;
  91.         if(fp == NULL)
  92.         {
  93.                 printf("error");
  94.                 return -1;
  95.         }
  96.         if (fread(&tempInfo, sizeof(tempInfo), 1, fp) != 1)
  97.                 printf("fread error");
  98.         return 0;
  99. }
  100. int main()
  101. {
  102.         Bss_Net_Info tempInfo;
  103.         char filename[100];;
  104.         strcpy(filename,"./AG_CONF.dat");

  105.         loadFromFile(tempInfo);

  106. }
复制代码

论坛徽章:
0
2 [报告]
发表于 2004-10-12 21:06 |只看该作者

求救:关于struct定义的问题,为什么总是coredump,超级奇怪

经过继续跟踪发现
只要把这一行
//*****************   unsigned short status;
去掉就好了,。。。。。。。为什么有这行就不行呢

论坛徽章:
0
3 [报告]
发表于 2004-10-13 08:43 |只看该作者

求救:关于struct定义的问题,为什么总是coredump,超级奇怪

用where命令查在哪一行coredump?

论坛徽章:
0
4 [报告]
发表于 2004-10-14 21:51 |只看该作者

求救:关于struct定义的问题,为什么总是coredump,超级奇怪

要能查出来,还问干吗?

后来经过检查发现,是因为该结构体如果数组定位100 ,那么
根据结构体 100*100*100,所暂用的内存太大了,而导致coredump

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
5 [报告]
发表于 2004-10-15 00:08 |只看该作者

求救:关于struct定义的问题,为什么总是coredump,超级奇怪

哦,是这个原因哪。^_^,一直关注呢。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP