$dbxtra sm_requld
Reading symbolic information ...warning: invalid line number table
Type 'help' for help.
(dbxtra) stop proc_init
[1] stop change proc_init
(dbxtra) run
Cannot do stop/trace/when change/access on a routine or block
(dbxtra) stop in main
[2] stop in main
(dbxtra) run
Cannot do stop/trace/when change/access on a routine or block
(dbxtra)
What does *Cannot do stop/trace/when change/access on a routine or block*
mean? I can't find it in any of the doc's and trying the knowledge base
on www.sco.com does not find it.
Also how to recover from the above?
The only thing that works is to quit and restart dbxtra.
*The only thing that I could find that worked*
Reading symbolic information ...warning: invalid line number table
Type 'help' for help.
(dbxtra) stop in main
[1] stop in main
(dbxtra) run
[1] stopped in main at 0x7ea
0x000007ea (main+0x6) mov DWord Ptr [ebp-0x04],$1
(dbxtra) step
0x000007f1 (main+0xd) mov DWord Ptr [ebp-0x08],$0
(dbxtra)
VS dbx:
$ dbx sm_requld
Reading symbolic information ...warning: invalid line number table
Type 'help' for help.
(dbx) file dsm_requld.c
(dbx) stop in main
[1] stop in main
(dbx) run
[1] stopped in main at 0x7ea
0x000007ea (main+0x6) mov DWord Ptr [ebp-0x04],$1
(dbx) step
stopped in main at 0x7f1
0x000007f1 (main+0xd) mov DWord Ptr [ebp-0x08],$0
(dbx)
$ file sm_requld
sm_requld: iAPX 386 COFF demand-paged executable not stripped
Recompile with -belf flag:
$ dbx sm_requld
Reading symbolic information ...
Reading symbols from DLL: /usr/lib/libc.so.1...warning: Object file cont
ains no symbolic information
Type 'help' for help.
(dbx) stop proc_init
[1] stop change proc_init
(dbx) run
Cannot do stop/trace/when change/access on a routine or block
(dbx) stop in main
[2] stop in main
(dbx) run
Cannot do stop/trace/when change/access on a routine or block
(dbx)q
$ dbx sm_requld
Reading symbolic information ...
Reading symbols from DLL: /usr/lib/libc.so.1...warning: Object file cont
ains no symbolic information
Type 'help' for help.
(dbx) stop in main
[1] stop in main
(dbx) run
[1] stopped in main at line 138
138 char desc_name[19];
(dbx) print countx
134511612
(dbx) step
stopped in main at line 139
139 short desc_occ;
(dbx) print countx
1 *< after step to 139 countx set to 1 see Program list below*
(dbx) print cnt
-2146910136
(dbx) step
stopped in main at line 144
144 #line 5 "sm_requld.ec"
(dbx) print cnt
0
(dbx) l
145
146 #include <stdio.h>
147 #include <fcntl.h>
148 #include <time.h>
149 #include <sys/types.h>
150 #include <define.h>
151 #include <recdefreq.h>
152 #include <errlog.h>
153
154
(dbx)
Program sm_requld.ec around main
135 main()
136
137 {
138 int countx =1;
139 int cnt = 0;
140 int ireqno;
141 char cmdstr[60];
142
143 /* get date & time this program last executed */
144 dbase = getenv(SMDB);
145 EXEC SQL database :dbase;
The list display in dbx (and dbxtra) is wrong as the code
is compiled Informix eSQL.
The question I need answered is:
What does *Cannot do stop/trace/when change/access on a routine or block*
mean in English non-programmer speak?
How do I set a proper break point after the error without having
to exit dbx/dbxtra?
And what am I doing wrong (trying to set break point at proc_init)
and how to do it right?
--
Steve Fabac
S.M. Fabac & Associates
816/765-1670
> (dbxtra) stop proc_init
> [1] stop change proc_init
> (dbxtra) run
> Cannot do stop/trace/when change/access on a routine or block
> (dbxtra) stop in main
> [2] stop in main
> (dbxtra) run
> Cannot do stop/trace/when change/access on a routine or block
> (dbxtra)
>
> What does *Cannot do stop/trace/when change/access on a routine or block*
> mean? I can't find it in any of the doc's and trying the knowledge base
> on www.sco.com does not find it.
>
> Also how to recover from the above?
"stop in main" means stop at the beginning of main().
"stop change proc_init" means stop when the item `proc_init' is changed
by the running code.
The debugger is telling you that it's not going to watch for changing of
a routine's code. You almost certainly want "stop in proc_init", same
as you did for `main'.
> The only thing that works is to quit and restart dbxtra.
It won't start running again until you clear out the invalid "stop
change". (however you unset a watchpoint in dbx)
> (dbx) stop proc_init
> [1] stop change proc_init
This shows that the default "stop" action is "stop change" rather than
"stop in".
>Bela<