Author Topic: Debugger get stuck when we try to watch big struct  (Read 3288 times)

shmuel_a

  • New Community Member
  • Posts: 1
  • Hero Points: 0
Debugger get stuck when we try to watch big struct
« on: December 19, 2012, 12:40:51 pm »
Debugger get stuck when we try to watch big struct parameter

Hi, I’m trying to debug code of my using slickedit debugger (using NIOS II GDB for Linux) and in the code I have a global local array that is map to a big struct (a lot of parameters in it). When I’m trying to debug the code that have this parameter in the code the debugger get stuck for more than 10-20 sec. Also when I only try to watch this parameter (put the cursor on it) the debugger get stuck for more than 10-20 sec.
Please advice if someone had such problems and have a solution for it. Thx.
The parameter is:

LOCAL sdfe4_channel_status_t channel_status[16];

typedef struct sdfe4_channel_status sdfe4_channel_status_t;
struct sdfe4_channel_status
{
   /** for STC-C/R dependent operations (will be read from config) */
   UINT8 stu_mode;

/* from xxx_CONNECT_CTRL */
   /** line state */
   INT8 main_state;
   BOOL main_state_changed;

/* from ACK_DSL_PARAM_GET */
   /** Payload Base Rate */
   UINT16 base_rate;
   /** Payload Sub Rate */
   UINT8 sub_rate;
   /** Annex */
   UINT8 annex;
   /** Clocking Mode */
   UINT8 clk_ref;
   /*current power backoff */ /* ira add */
   UINT8 pow_backoff;
#if 0
   /** Power Spectral Density Mask */
   UINT8 psd_mask;
   /** SHDSL Framing Mode */
   UINT8 frame_mode;
#endif

/** mpair infos */
   /** "pointer" to the master channel, a value 0xFF means "not a mpair member" */
   UINT8 master;
   /* "pointer" to slaves, just for the master */
   E_SDFE4_DELAY_MEASURE_STATE dly_measure_state;
   E_SDI_DPLL_SYNC sdi_dpll_sync;
   UINT8 mpair_delay_value;

/** flag to see if we need to restart a channel (in case of an error) */
#if INCLUDE_TERMINAL == 1
   BOOL  need_channel_restart;
   UINT32   restart_time;
#endif /* INCLUDE_TERMINAL == 1 */

/* for repeater mode */
#if (INCLUDE_REPEATER == 1) || (INCLUDE_REPEATER_EFM == 1)
   UINT8                   ghs_state;
   BOOL                    ghs_state_changed;

   /* repeater connection number */
   UINT8                   rep_nr;

   sdfe4_caplist_u         rep_caplist;
   cmd_cfg_ghs_cap_t       cmd_cfg_ghs_cap;
   UINT8                   reg_counterpart;
   BOOL                    rep_caplist_fresh_data;
   UINT8                   cnt_ghs_cap_get;
   BOOL                    R_CapRequest;
#endif

#if (INCLUDE_REPEATER == 1) || (INCLUDE_EOC_HANDLING == 1) || (INCLUDE_REPEATER_EFM == 1)
   /** Write pointer to eoc receive fifo */
   EOC_FIFO * volatile pRxEocFifoWrite;
   /** Read pointer to eoc receive fifo */
   EOC_FIFO * volatile pRxEocFifoRead;
   /* eoc fifo */
   EOC_FIFO EocRxFifo[EOC_RX_FIFO_SIZE];

   /** Write pointer to eoc receive fifo */
   EOC_FIFO * volatile pTxEocFifoWrite;
   /** Read pointer to eoc receive fifo */
   EOC_FIFO * volatile pTxEocFifoRead;
   /* eoc fifo */
   EOC_FIFO EocTxFifo[EOC_TX_FIFO_SIZE];
   
   E_SDFE4_EOC_TX_STATE eocTxState;

   cmd_eoc_tx_t            eoc_buffer;

#if (INCLUDE_REPEATER_EFM == 1) && (INCLUDE_PROPRIETARY_EOC == 1)
   EOC_ProprietaryMessage  EocPropMessage;
#endif

   BOOL                    eoc_rx_fresh_data;
   INT8                    eoc_tx_status;
   sdfe4_inventory_data_t  sdfe4_inventory;
   UINT8                   SpanID;
   UINT8                   SpanID_US;
   BOOL                    eoc_disc_resp;
   BOOL                    eoc_inv_resp;
   UINT8                   eoc_status_resp;
   BOOL                    eoc_need_perf_update;
   BOOL                    bForceRetrain;
#endif
#if (INCLUDE_REPEATER == 1) && (INCLUDE_REPEATER_EFM == 1)
   BOOL                    bBACPEnabled;
#endif
#if (INCLUDE_REPEATER_EFM == 1)
   UINT32                  discovery_lo;
   UINT16                  discovery_hi;
   BOOL                    bDiscoveryCodeValid;
   UINT32                  aggregate_reg;
   BOOL                    bAggregateCodeValid;
   BOOL                    bAggregated;
   BOOL                    bEfmRestart;
   BOOL                    bEfmBonding;
   UINT8                                                                   discovery_op_stat;
   UINT8                                                                   aggregate_op_stat;
   BOOL                    bCapListRestore;
   BOOL                    bNfcFbit;
   UINT8                   nFbitVal;
   BOOL                    bConfiguredPMMS;
   BOOL                    bPMMSRequested;
   BOOL                    bSecondGHs;
   UINT8                   cnt_efm_ghs_cap_get;
   ack_ghs_cap_get_t       efm_ack_ghs_cap_get[4];
   BOOL                    bSru_R_FreqMinusOne;
   cmd_cfg_sdi_settings_t  cfg_sdi_settings;
   BOOL                    bPMMSCapListRequest;
#endif
#if defined (INCLUDE_GHS_CAP_DUMP)
   BOOL                    dumpOnly;
#endif
   UINT8                   condition;  /* ira set */
   UINT8                   eoc_rx_get;  /* ira set */
   UINT8                   eoc_tx_set;  /* ira set */

   UINT8                   polling_flag; /* ira set */
   UINT8                   polling_flag_eoc; /* ira set */
   UINT8                   polling_flag_eoc_tx; /* ira set */
   UINT8                   tx_busy_count;                /* ira set */
};