[freetds] Need Help on dblib program

Steven J. Backus backus at math.utah.edu
Thu Jul 31 16:07:31 EDT 2003


> What does your log show?  Does it stop just before the "family" conversion?

The last few lines from the log are:

15:01:26.158004 dbconvert() srctype = 39 desttype = 47
15:01:26.269232 dbconvert() calling tds_convert
15:01:26.378415 dbconvert() called tds_convert returned 4
15:01:26.491374 dbconvert() outputting 4 bytes character data destlen = -2 

Then I do "c" again, another watch point appears:

Old value = 84 'T'
New value = 0 '\000'
dbconvert (dbproc=0x807b910, srctype=39, src=0x807d214 "I64TY", srclen=3, desttype=47, 
    dest=0x804763c "I64", destlen=-2) at dblib.c:1907
1907                            ret = len;
(gdb) bt
#0  dbconvert (dbproc=0x807b910, srctype=39, src=0x807d214 "I64TY", srclen=3, desttype=47, 
    dest=0x804763c "I64", destlen=-2) at dblib.c:1907
#1  0x804a471 in buffer_transfer_bound_data (rowtype=-1, compute_id=0, buf=0x807b914, 
    dbproc=0x807b910, row_num=2) at dblib.c:449
#2  0x804b594 in dbnextrow (dbproc=0x807b910) at dblib.c:1542
#3  0x804cf9d in dbprrow (dbproc=0x807b910) at dblib.c:2836
#4  0x8049b75 in main (argc=1, argv=0x8047694) at test_prog.c:64

And the log says:

15:01:48.898080 leaving dbnextrow() returning -1
15:01:49.056794 dbconvert() srctype = 39 desttype = 47
15:01:49.175254 dbnextrow()
15:01:49.279738 processing row tokens.  marker is  d1(ROW)
15:01:49.390927 processing row.  column is 0 varint size = 1
15:01:49.503685 processing row.  column size is 4 
15:01:49.613331 clearing column 0 NULL bit
15:01:49.723482 processing row.  column is 1 varint size = 1
15:01:49.836814 processing row.  column size is 4 
15:01:49.946268 clearing column 1 NULL bit
15:01:50.054583 processing row.  column is 2 varint size = 1
15:01:50.167481 processing row.  column size is 4 
15:01:50.277285 clearing column 2 NULL bit
15:01:50.385498 processing row.  column is 3 varint size = 1
15:01:50.498404 processing row.  column size is 4 
15:01:50.608026 clearing column 3 NULL bit
15:01:50.718167 processing row.  column is 4 varint size = 1
15:01:50.831742 processing row.  column size is 4 
15:01:50.941296 clearing column 4 NULL bit
15:01:51.118558 processing row.  column is 5 varint size = 1
15:01:51.231533 processing row.  column size is 8 
15:01:51.341378 clearing column 5 NULL bit
15:01:51.449832 processing row.  column is 6 varint size = 1
15:01:51.562784 processing row.  column size is 4 
15:01:51.672678 clearing column 6 NULL bit
15:01:51.782585 processing row.  column is 7 varint size = 1
15:01:51.896092 processing row.  column size is 0 
15:01:52.006137 setting column 7 NULL bit
15:01:52.114150 processing row.  column is 8 varint size = 1
15:01:52.226978 processing row.  column size is 0 
15:01:52.336613 setting column 8 NULL bit
15:01:52.444546 processing row.  column is 9 varint size = 1
15:01:52.557372 processing row.  column size is 0 
15:01:52.667295 setting column 9 NULL bit
15:01:52.776913 processing row.  column is 10 varint size = 1
15:01:52.890387 processing row.  column size is 0 
15:01:52.999970 setting column 10 NULL bit
15:01:53.108004 processing row.  column is 11 varint size = 1
15:01:53.220952 processing row.  column size is 3 
15:01:53.330670 clearing column 11 NULL bit
tds_get_char_data: reading 3 on wire for 4 to client
15:01:53.453001 processing row.  column is 12 varint size = 1
15:01:53.565635 processing row.  column size is 1 
15:01:53.675704 clearing column 12 NULL bit
tds_get_char_data: reading 1 on wire for 0 to client
15:01:53.801090 dbconvert() srctype = 56 desttype = 56
15:01:53.912320 dbconvert() srctype == desttype
15:01:54.020991 dbconvert() srctype = 56 desttype = 56
15:01:54.131938 dbconvert() srctype == desttype
15:01:54.240763 dbconvert() srctype = 56 desttype = 56
15:01:54.351875 dbconvert() srctype == desttype
15:01:54.460669 dbconvert() srctype = 56 desttype = 56
15:01:54.571827 dbconvert() srctype == desttype
15:01:54.680843 dbconvert() srctype = 56 desttype = 56
15:01:54.793427 dbconvert() srctype == desttype
15:01:54.902784 dbconvert() srctype = 62 desttype = 59
15:01:55.013889 dbconvert() calling tds_convert
15:01:55.122179 dbconvert() called tds_convert returned 4
15:01:55.233779 dbconvert() srctype = 56 desttype = 56
15:01:55.344798 dbconvert() srctype == desttype
15:01:55.456094 dbconvert() srctype = 39 desttype = 47
15:01:55.567235 dbconvert() calling tds_convert
15:01:55.676430 dbconvert() called tds_convert returned 3
15:01:55.789020 dbconvert() outputting 3 bytes character data destlen = -2 

And yet again:

Hardware watchpoint 2: *(DBCHAR *) 134510143

Old value = 0 '\000'
New value = -33 'ß'
(gdb) bt
#0  0xdfae22bf in ?? ()
#1  0xdfad3339 in ?? ()

And the log says:

15:03:57.347706 dbconvert() srctype = 39 desttype = 47
15:03:57.459393 dbconvert() calling tds_convert
15:03:57.568458 dbconvert() called tds_convert returned 1
15:03:57.679656 dbconvert() outputting 1 bytes character data destlen = -1 
15:03:57.795706 leaving dbnextrow() returning -1
15:03:57.905909 dbconvert() srctype = 56 desttype = 47
15:03:58.020137 dbconvert() calling tds_convert
15:03:58.130846 dbconvert() called tds_convert returned 6
15:03:58.241773 dbconvert() outputting 6 bytes character data destlen = 256 
15:03:58.366881 dbconvert() srctype = 56 desttype = 47
15:03:58.477864 dbconvert() calling tds_convert
15:03:58.588438 dbconvert() called tds_convert returned 6
15:03:58.699645 dbconvert() outputting 6 bytes character data destlen = 256 
15:03:58.825464 dbconvert() srctype = 56 desttype = 47
15:03:58.936411 dbconvert() calling tds_convert
15:03:59.048571 dbconvert() called tds_convert returned 1
15:03:59.159931 dbconvert() outputting 1 bytes character data destlen = 256 
15:03:59.287127 dbconvert() srctype = 56 desttype = 47
15:03:59.398298 dbconvert() calling tds_convert
15:03:59.508790 dbconvert() called tds_convert returned 1
15:03:59.619964 dbconvert() outputting 1 bytes character data destlen = 256 
15:03:59.747346 dbconvert() srctype = 56 desttype = 47
15:03:59.859058 dbconvert() calling tds_convert
15:03:59.969808 dbconvert() called tds_convert returned 4
15:04:00.082519 dbconvert() outputting 4 bytes character data destlen = 256 
15:04:00.208625 dbconvert() srctype = 62 desttype = 47
15:04:00.320262 dbconvert() calling tds_convert
15:04:00.431440 dbconvert() called tds_convert returned 2
15:04:00.542438 dbconvert() outputting 2 bytes character data destlen = 256 
15:04:00.673335 dbconvert() srctype = 56 desttype = 47
15:04:00.784292 dbconvert() calling tds_convert
15:04:00.895515 dbconvert() called tds_convert returned 1
15:04:01.018589 dbconvert() outputting 1 bytes character data destlen = 256 
15:04:01.158077 dbconvert() srctype = 39 desttype = 47
15:04:01.272520 dbconvert() srctype = 39 desttype = 47
15:04:01.389402 dbnextrow()
15:04:01.494036 processing row tokens.  marker is  fd(DONE)
15:04:01.605411 tds_process_end() more_results = 0, was_cancelled = 0 
15:04:01.720844 leaving dbnextrow() returning -2

And it won't continue from there.

Thanks again James!

Steven


More information about the FreeTDS mailing list