does the interpreter execute commented out lines ??

i am commenting out sections of code, rebuilding starting from bootstrap, and the lines commented out are still being executed. wth is going on here ??

¿¿ What ??
Can you post your code , that seems unlikely.
its sort of alot, of code but here goes:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
ldu1::ldu1(const_bit_queue& frame_body) :
   voice_data_unit(frame_body)
{

}

ldu1::~ldu1()
{
}

string
ldu1::duid_str() const
{
   return string("LDU1");
}

uint16_t
ldu1::frame_size_max() const
{
   return 1728;
}
/*
string
ldu1::nac_str() const
{
   const size_t NAC_BITS[] = {
      48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59
   };
   const size_t NAC_BITS_SZ = sizeof(NAC_BITS) / sizeof(NAC_BITS[0]);
   uint32_t nac = extract(frame_body(), NAC_BITS, NAC_BITS_SZ);
   return lookup(nac, NACS, NACS_SZ);
}

240 Link Control Word bits
void
ldu1::decode_lcw(uint16_t *decoded_lcw)
{
   const size_t LCW_BITS[240] = {
      410,  411,  412,  413,  414,  415,  416,  417,  418,  419,  420,  421,
      422,  423,  424,  425,  426,  427,  428,  429,  432,  433,  434,  435,
      436,  437,  438,  439,  440,  441,  442,  443,  444,  445,  446,  447,
      448,  449,  450,  451,  600,  601,  602,  603,  604,  605,  606,  607,
      608,  609,  610,  611,  612,  613,  614,  615,  616,  617,  618,  619,
      620,  621,  622,  623,  624,  625,  626,  627,  628,  629,  630,  631,
      632,  633,  634,  635,  636,  637,  638,  639,  788,  789,  792,  793,
      794,  795,  796,  797,  798,  799,  800,  801,  802,  803,  804,  805,
      806,  807,  808,  809,  810,  811,  812,  813,  814,  815,  816,  817,
      818,  819,  820,  821,  822,  823,  824,  825,  826,  827,  828,  829,
      978,  979,  980,  981,  982,  983,  984,  985,  986,  987,  988,  989,
      990,  991,  992,  993,  994,  995,  996,  997,  998,  999,  1000, 1001,
      1002, 1003, 1004, 1005, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015,
      1016, 1017, 1018, 1019, 1168, 1169, 1170, 1171, 1172, 1173, 1174, 1175,
      1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187,
      1188, 1189, 1190, 1191, 1192, 1193, 1194, 1195, 1196, 1197, 1198, 1199,
      1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1356, 1357, 1358, 1359,
      1360, 1361, 1362, 1363, 1364, 1365, 1368, 1369, 1370, 1371, 1372, 1373,
      1374, 1375, 1376, 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385,
      1386, 1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394, 1395, 1396, 1397
   };
   const uint16_t LCW_BITS_SZ = sizeof(LCW_BITS) / sizeof(LCW_BITS[0]);
   uint16_t * encoded_lcw = new uint16_t[240];
   for( int i = 0 ; i < LCW_BITS_SZ; ++i ){
        encoded_lcw[i] = extract(frame_body(), LCW_BITS[i], LCW_BITS_SZ);
   }
   uint16_t *rs_codewords = new uint16_t[144];
   decode_hamming( encoded_lcw, rs_codewords );
   delete [] encoded_lcw;
   decode_reed_solomon( rs_codewords, decoded_lcw );
   delete [] rs_codewords;
}


uint16_t 
ldu1::lcf(uint16_t *decoded_lcw) const
{
   const size_t LCF_BITS[] = {
      0, 1, 2, 3, 4, 5, 6 , 7
   };
   const size_t LCF_BITS_SZ = sizeof(LCF_BITS) / sizeof(LCF_BITS[0]);
   const uint16_t lcf = extract(decoded_lcw, LCF_BITS, LCF_BITS_SZ);
   return lcf;
}

string 
ldu1::mfid_str(uint16_t *decoded_lcw) const
{
   const size_t MFID_BITS[] = {
      8, 9, 10, 11, 12, 13, 14, 15
   };
   const size_t MFID_BITS_SZ = sizeof(MFID_BITS) / sizeof(MFID_BITS_SZ);
   uint8_t mfid = extract(decoded_lcw, MFID_BITS, MFID_BITS_SZ);
   return lookup(mfid, MFIDS, MFIDS_SZ);
}

string
ldu1::tgid_str(uint16_t *decoded_lcw) const
{
   const size_t TGID_BITS[] = {
      32, 33, 34, 35, 36, 37, 38, 39,
      40, 41, 42, 43, 44, 45, 46, 47,
   };
   const size_t TGID_BITS_SZ = sizeof(TGID_BITS) / sizeof(TGID_BITS[0]);
   const uint16_t tgid = extract(decoded_lcw, TGID_BITS, TGID_BITS_SZ);
   ostringstream os;
   os << hex << showbase << setfill('0') << setw(4) << tgid;
   return os.str();
} 

string 
ldu1::source_str(uint16_t *decoded_lcw) const
{
   const size_t SOURCE_BITS[] = {
      48, 49, 50, 51, 52, 53, 54, 55,
      56, 57, 58, 59, 60, 61, 62, 63,
      64, 65, 66, 67, 68, 69, 70, 71,
   };

   const size_t SOURCE_BITS_SZ = sizeof(SOURCE_BITS) /sizeof(SOURCE_BITS[0]);
   const uint16_t source = extract(decoded_lcw, SOURCE_BITS, SOURCE_BITS_SZ);
   ostringstream os;
   os << hex << showbase << setfill('0') << setw(6) << source;
   return os.str();
}

string 
ldu1::destination_str(uint16_t *decoded_lcw) const
{
   const size_t DESTINATION_BITS[] = { 
      24, 25, 26, 27, 28, 29, 30, 31,
      32, 33, 34, 35, 36, 37, 38, 39,
      40, 41, 42, 43, 44, 45, 46, 47, 
   };

   const size_t DESTINATION_BITS_SZ = sizeof(DESTINATION_BITS) / sizeof(DESTINATION_BITS[0]);
   const uint16_t destination = extract(decoded_lcw, DESTINATION_BITS, DESTINATION_BITS_SZ);
   ostringstream os;
   os << hex << showbase << setfill('0') << setw(6) << destination;
   return os.str();
}

// put duid, nac, and lcw data into pickle
std::string
ldu1::snapshot(uint16_t *decoded_lcw) const
{ 
   pickle p;
   if (lcf(decoded_lcw) == 0)
   {      
     p.add("duid", duid_str());
     p.add("nac", nac_str());
     p.add("mfid", mfid_str(decoded_lcw));
     p.add("tgid", tgid_str(decoded_lcw));
     p.add("source", source_str(decoded_lcw));
     return p.to_string();
   } 
   else if (lcf(decoded_lcw) == 0x03)
   {
     p.add("duid", duid_str());
     p.add("nac", nac_str());
     p.add("mfid", mfid_str(decoded_lcw));
     p.add("dest", destination_str(decoded_lcw));
     p.add("source", source_str(decoded_lcw));
     return p.to_string();
   }
   else
   {
   p.add("duid", duid_str());
   p.add("nac", nac_str());
   return p.to_string();
   }
}
*/


the ()s above extract bit values from a packet, read them into strings, and the last () here pickles the data and sends on to a queue that gets threaded to a python UI. even though all this is commented out i am still getting all the data in the python UI? the program is build from tarball so i am pretty sure i am working on the right files in right directory. what is possible here???
i tried again again, and this time i restarted the machine before i rebuilt from bootstrap. still getting the weirdness.
Last edited on
You could make a backup copy of the file, so you can restore it afterwards. Then rather than just commenting-out the lines, physically delete them and try again.
Given that you are removing definitions, I'll guess that your program didn't build.
So you are executing the old version.

Or you expect to modify a running program...
no i am not expecting to modify a running program. like i said before: i am commenting out sections of code, rebuilding starting with bootstrap, even restarted the machine, and the program compiles without any error. but you did give me the idea to comment out the declarations in the header. so its running now and i am waiting to see what i get this time.
It will complain compile, but it should fail in the linking stage. If it does not, then what you are touching is not relevant to the program.
Last edited on
there are no complaints from commenting the code i posted above. if i do something else wrong then there are errors. for example when i commented out a declaration but not the definition, the build died with the usual error for that. but from what i did above, commenting out the definition without commenting out the declaration, it builds and it runs. now i commented out both definitions and the corresponding declarations. it builds and it runs. and is running right now.
i thought what you are thinking, so checked to make certain that the files i am working on are the source files. i double checked. i pulled fresh from svn using a script. it puts the source in one place. i built from there. i modify the files from there.
the reason i commented out this stuff; starting with the snapshot(), in first place was because the program has been giving me this dying error:
1
2
3
4
5
6
7
8
9
10
11
12
*** glibc detected *** /usr/bin/python: free(): invalid pointer:
0xaea02a58 ***
======= Backtrace: =========
/lib/i386-linux-gnu/libc.so.6(+0x75ee2)[0xb75a7ee2]
/usr/lib/i386-linux-gnu/libstdc++.so.6(_ZdlPv+0x1f)[0xb69a6adf]
/usr/lib/i386-linux-gnu/libstdc++.so.6(_ZNSs4_Rep10_M_destroyERKSaIcE+0x1b)[0xb6a0e7bb]
/usr/lib/i386-linux-gnu/libstdc++.so.6(+0xb0800)[0xb6a0e800]
/usr/lib/i386-linux-gnu/libstdc++.so.6(_ZNSsD1Ev+0x2e)[0xb6a0e86e]
/usr/local/lib/python2.7/dist-packages/gnuradio/_op25.so(_ZN19snapshot_du_handler6handleEN5boost10shared_ptrI9data_unitEE+0x2a6)[0xb2d79e56]
/usr/local/lib/python2.7/dist-packages/gnuradio/_op25.so(_ZN17data_unit_handler6handleEN5boost10shared_ptrI9data_unitEE+0x54)[0xb2d78c74]
/usr/local/lib/python2.7/dist-packages/gnuradio/_op25.so(_ZN16voice_du_handler6handleEN5boost10shared_ptrI9data_unitEE+0x66)[0xb2d7b116]
/usr/local/lib/python2.7/dist-packages/gnuradio/_op25.so(_ZN15op25_decoder_bf14receive_symbolEh+0x18c)[0xb2d92bec]

i think the memory mix up is from here, :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
void
snapshot_du_handler::handle(data_unit_sptr du)
{
   if(d_msgq) {
      string snapshot(du->snapshot());
      if(snapshot.size() > 0) {
         const size_t snapshot_sz = snapshot.size() + 1;
         gr_message_sptr msg = gr_make_message(/*type*/0,
/*arg1*/++d_data_units, /*arg2*/0, snapshot_sz);
         char *snapshot_data = reinterpret_cast<char*>(msg->msg());
         memcpy(snapshot_data, snapshot.c_str(), snapshot_sz);
         d_msgq->handle(msg);
      }
   }
   data_unit_handler::handle(du);
}

this code is from a parent class of the class that code is in from my first post.
i am guessing (at this point) that 'du' is pointing to an invalid memory location.
so i commented out the snapshot function in last derived class to see if the error stopped. apparently it is still taking snapshots even though that function, or where it is called, is commented out.
Sorry, it was a typo. I tried to write `it will compile'

> this code is from a parent class of the class that code is in from my first post.
> so i commented out the snapshot function in last derived class to see if the error stopped
¿why the last derived?

Get a debugger (compile for debugging), it would tell you the functions that your program is executing and were are they defined (file and line number)


Also, ¿may you provide the source code along with the steps to reproduce the crash?
Last edited on
why the last derived? because that is the only place the the "snapshot()" is called,i am 99.9% certain of that, 100% certain that is where it is declared and defined. the crash is kind of unpredictable. the program sometimes will run for days, literally, before it crashes. sometimes it crashes with minutes of starting it. i hate to admit but i am unsure of where in the source code the error is starting so instead here is the core file i got from gdb, ill have to do two posts and i cant use the code things because it looks crazy if i do that all this is from terminal and ill admit i cant make heads or tails of it.
/**********
TERMINAL OUTPUT
***********/

warning: Can't read pathname for load map: Input/output error.
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/i386-linux-gnu/libthread_db.so.1".
Core was generated by `/usr/bin/python -u /home/matt/OP25_GRC/op25_grc.py'.
Program terminated with signal 6, Aborted.
#0 0xb7703424 in __kernel_vsyscall ()
(gdb) bt
#0 0xb7703424 in __kernel_vsyscall ()
#1 0xb75271df in __GI_raise (sig=6)
at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
#2 0xb752a825 in __GI_abort () at abort.c:91
#3 0xb756439a in __libc_message (do_abort=2, fmt=
0xb765eb08 "*** glibc detected *** %s: %s: 0x%s ***\n")
at ../sysdeps/unix/sysv/linux/libc_fatal.c:201
#4 0xb756eee2 in malloc_printerr (action=<optimized out>,
str=<optimized out>, ptr=0xae903744) at malloc.c:5018
#5 0xb6975adf in operator delete(void*) ()
from /usr/lib/i386-linux-gnu/libstdc++.so.6
#6 0xb69dd7bb in std::string::_Rep::_M_destroy(std::allocator<char> const&) ()
from /usr/lib/i386-linux-gnu/libstdc++.so.6
#7 0xb69dd800 in ?? () from /usr/lib/i386-linux-gnu/libstdc++.so.6
#8 0xb69dd86e in std::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string() () from /usr/lib/i386-linux-gnu/libstdc++.so.6
#9 0xb2cede56 in snapshot_du_handler::handle (this=0xb7b2a50, du=...)
at snapshot_du_handler.cc:51
#10 0xb2cecc74 in data_unit_handler::handle (this=0xb7b2ac0, du=...)
at data_unit_handler.cc:11
#11 0xb2cef116 in voice_du_handler::handle (this=0xb7b2ac0, du=...)
at voice_du_handler.cc:46
#12 0xb2d06bec in op25_decoder_bf::receive_symbol (this=this@entry=0xb7b2800,
---Type <return> to continue, or q <return> to quit---
d=1 '\001') at op25_decoder_bf.cc:221
#13 0xb2d06ddb in op25_decoder_bf::general_work (this=0xb7b2800,
nof_output_items=760, nof_input_items=..., input_items=...,
output_items=...) at op25_decoder_bf.cc:87
#14 0xb6aac529 in gr_block_executor::run_one_iteration() ()
from /usr/local/lib/libgnuradio-core-3.6.3.1.so.0.0.0
#15 0xb6aceaa1 in gr_tpb_thread_body::gr_tpb_thread_body(boost::shared_ptr<gr_block>, int) () from /usr/local/lib/libgnuradio-core-3.6.3.1.so.0.0.0
#16 0xb6ac935b in boost::detail::function::void_function_obj_invoker0<gruel::thread_body_wrapper<tpb_container>, void>::invoke(boost::detail::function::function_buffer&) () from /usr/local/lib/libgnuradio-core-3.6.3.1.so.0.0.0
#17 0xb6c71e46 in boost::detail::thread_data<boost::function0<void> >::run() ()
from /usr/local/lib/libgruel-3.6.3.1.so.0.0.0
#18 0xb68f796c in ?? () from /usr/lib/libboost_thread.so.1.49.0
#19 0xb76ccd4c in start_thread (arg=0xa31e9b40) at pthread_create.c:308
#20 0xb75e7dde in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130
(gdb) frame 9
#9 0xb2cede56 in snapshot_du_handler::handle (this=0xb7b2a50, du=...)
at snapshot_du_handler.cc:51
51 }
(gdb) list
46 const size_t snapshot_sz = snapshot.size() + 1;
47 gr_message_sptr msg = gr_make_message(/*type*/0, /*arg1*/++d_data_units, /*arg2*/0, snapshot_sz);
48 char *snapshot_data = reinterpret_cast<char*>(msg->msg());
49 memcpy(snapshot_data, snapshot.c_str(), snapshot_sz);
50 d_msgq->handle(msg);
51 }
52 }
53 data_unit_handler::handle(du);
54 }
55
(gdb) info locals
snapshot = {static npos = <optimized out>,
_M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p =
0xae903750 "(p\220\256\060r\220\256\070t\220\256@v\220\256\377\377\377\377\065"}}
(gdb) frame 10
#10 0xb2cecc74 in data_unit_handler::handle (this=0xb7b2ac0, du=...)
at data_unit_handler.cc:11
11 d_next->handle(du);
(gdb) list
6
7 void
8 data_unit_handler::handle(data_unit_sptr du)
9 {
10 if(d_next) {
11 d_next->handle(du);
12 }
13 }
14
15 data_unit_handler::data_unit_handler(data_unit_handler_sptr next) :
(gdb) info locals
No locals.
(gdb) frame 10
#10 0xb2cecc74 in data_unit_handler::handle (this=0xb7b2ac0, du=...)
at data_unit_handler.cc:11
11 d_next->handle(du);
(gdb) list
6
7 void
8 data_unit_handler::handle(data_unit_sptr du)
9 {
10 if(d_next) {
11 d_next->handle(du);
12 }
13 }
14
15 data_unit_handler::data_unit_handler(data_unit_handler_sptr next) :
(gdb) info locals
No locals.
(gdb) frame 11
#11 0xb2cef116 in voice_du_handler::handle (this=0xb7b2ac0, du=...)
at voice_du_handler.cc:46
46 data_unit_handler::handle(du);
(gdb) list
41
42 void
43 voice_du_handler::handle(data_unit_sptr du)
44 {
45 du->decode_audio(*d_decoder);
46 data_unit_handler::handle(du);
47 }
(gdb) info locals
No locals.
(gdb) frame 12
#12 0xb2d06bec in op25_decoder_bf::receive_symbol (this=this@entry=0xb7b2800,
d=1 '\001') at op25_decoder_bf.cc:221
221 d_data_unit_handler->handle(d_data_unit);
(gdb) list
216 break;
217 case READING:
218 d_data_unit->extend(d);
219 if(d_data_unit->is_complete()) {
220 d_data_unit->correct_errors();
221 d_data_unit_handler->handle(d_data_unit);
222 data_unit_sptr null;
223 d_data_unit = null;
224 d_state = SYNCHRONIZING;
225 }
(gdb) info locals
null = {px = 0xae9047e0, pn = {pi_ = 0xae904bb0}}
frame_hdr_sz = <optimized out>
(gdb) frame 13
#13 0xb2d06ddb in op25_decoder_bf::general_work (this=0xb7b2800,
nof_output_items=760, nof_input_items=..., input_items=...,
output_items=...) at op25_decoder_bf.cc:87
87 receive_symbol(d);
(gdb) list
82
83 // process input
84 const uint8_t *in = reinterpret_cast<const uint8_t*>(input_items[0]);
85 for(int i = 0; i < nof_input_items[0]; ++i) {
86 dibit d = in[i] & 0x3;
87 receive_symbol(d);
88 }
89 consume_each(nof_input_items[0]);
90
91 // produce audio
(gdb) info locals
d = <optimized out>
i = <optimized out>
in = 0xa6aea4c7 "\002"
samples = <optimized out>
out = <optimized out>
(gdb) frame 14
#14 0xb6aac529 in gr_block_executor::run_one_iteration() ()
from /usr/local/lib/libgnuradio-core-3.6.3.1.so.0.0.0
(gdb) list
92 audio_samples *samples = d_imbe->audio();
93 float *out = reinterpret_cast<float*>(output_items[0]);
94 const int n = min(static_cast<int>(samples->size()), nof_output_items);
95 if(0 < n) {
96 copy(samples->begin(), samples->begin() + n, out);
97 samples->erase(samples->begin(), samples->begin() + n);
98 }
99 if(n < nof_output_items) {
Last edited on

100 fill(out + n, out + nof_output_items, 0.0);
101 }
(gdb) info locals
No symbol table info available.
(gdb) frame 15
#15 0xb6aceaa1 in gr_tpb_thread_body::gr_tpb_thread_body(boost::shared_ptr<gr_block>, int) () from /usr/local/lib/libgnuradio-core-3.6.3.1.so.0.0.0
(gdb) list
102 return nof_output_items;
103
104 } catch(const std::exception& x) {
105 cerr << x.what() << endl;
106 exit(1);
107 } catch(...) {
108 cerr << "unhandled exception" << endl;
109 exit(2); }
110 }
111
(gdb) info locals
No symbol table info available.
(gdb) frame 16
#16 0xb6ac935b in boost::detail::function::void_function_obj_invoker0<gruel::thread_body_wrapper<tpb_container>, void>::invoke(boost::detail::function::function_buffer&) () from /usr/local/lib/libgnuradio-core-3.6.3.1.so.0.0.0
(gdb) list
112 const char*
113 op25_decoder_bf::destination() const
114 {
115 return d_p25cai_du_handler->destination();
116 }
117
118 op25_decoder_bf::op25_decoder_bf() :
119 gr_block("decoder_bf", gr_make_io_signature(1, 1, sizeof(uint8_t)), gr_make_io_signature(0, 1, sizeof(float))),
120 d_data_unit(),
121 d_data_unit_handler(),
(gdb) info locals
No symbol table info available.
(gdb) frame 17
#17 0xb6c71e46 in boost::detail::thread_data<boost::function0<void> >::run() ()
from /usr/local/lib/libgruel-3.6.3.1.so.0.0.0
(gdb) list
122 d_frame_hdr(),
123 d_imbe(imbe_decoder::make()),
124 d_state(SYNCHRONIZING),
125 d_p25cai_du_handler(NULL)
126 {
127 d_p25cai_du_handler = new p25cai_du_handler(d_data_unit_handler, "224.0.0.1", 23456);
128 d_data_unit_handler = data_unit_handler_sptr(d_p25cai_du_handler);
129 d_snapshot_du_handler = new snapshot_du_handler(d_data_unit_handler);
130 d_data_unit_handler = data_unit_handler_sptr(d_snapshot_du_handler);
131 d_data_unit_handler = data_unit_handler_sptr(new voice_du_handler(d_data_unit_handler, d_imbe));
(gdb) info locals
No symbol table info available.
(gdb) frame 18
#18 0xb68f796c in ?? () from /usr/lib/libboost_thread.so.1.49.0
(gdb) list
132 }
133
134 bool
135 op25_decoder_bf::correlated()
136 {
137 static const bool FS[] = {
138 0, 1, 0, 1, 0, 1, 0, 1,
139 0, 1, 1, 1, 0, 1, 0, 1,
140 1, 1, 1, 1, 0, 1, 0, 1,
141 1, 1, 1, 1, 1, 1, 1, 1,
(gdb) info locals
No symbol table info available.
(gdb) frame 18
#18 0xb68f796c in ?? () from /usr/lib/libboost_thread.so.1.49.0
(gdb) list
142 0, 1, 1, 1, 0, 1, 1, 1,
143 1, 1, 1, 1, 1, 1, 1, 1
144 };
145 static const size_t FS_SZ = sizeof(FS)/sizeof(FS[0]);
146
147 uint8_t errs = 0;
148 for(size_t i = 0; i < FS_SZ; ++i) {
149 if(d_frame_hdr[i] ^ FS[i]) {
150 ++errs;
151 }
(gdb) info locals
No symbol table info available.
(gdb)

/*************
END TERMINAL OUTPUT
****************/

again,i cant make heads or tails of it. thanks a bunch for taking a peak! ohh and i am still getting data outputted in the UI even with the definitions and the declarations commented out.
Last edited on
Topic archived. No new replies allowed.