[Pre-nighlty testing compilation check service]
Fails to compile with icc & gcc with optimization enabled:
.../MonetDB5/src/mal/mal_debugger.mx(1501): error #592: variable "p" is used
before its value is set
mdbCommand(cntxt, mb, stk, p, pc);
^
Stefam
On Wed, Mar 04, 2009 at 03:54:07PM +0000, Martin Kersten wrote:
> Update of /cvsroot/monetdb/MonetDB5/src/mal
> In directory 23jxhf1.ch3.sourceforge.com:/tmp/cvs-serv10776
>
> Modified Files:
> Tag: Feb2009
> mal_debugger.mx
> Log Message:
> The debugger command 'bbp trace <pattern>' has been added to
> keep a watch over the lref status of bats in the bbp.
>
>
> U mal_debugger.mx
> Index: mal_debugger.mx
> ===================================================================
> RCS file: /cvsroot/monetdb/MonetDB5/src/mal/mal_debugger.mx,v
> retrieving revision 1.256.2.2
> retrieving revision 1.256.2.3
> diff -u -d -r1.256.2.2 -r1.256.2.3
> --- mal_debugger.mx 12 Feb 2009 06:34:16 -0000 1.256.2.2
> +++ mal_debugger.mx 4 Mar 2009 15:54:04 -0000 1.256.2.3
> @@ -489,6 +489,7 @@
> mal_export void printBatInfo(stream *f, VarPtr n, ValPtr v);
> mal_export void printBatProperties(stream *f, VarPtr n, ValPtr v, str props);
> mal_export void printTraceCall(stream *out, MalBlkPtr mb, MalStkPtr stk, int
> pc, int flags);
> +mal_export char BBPTraceCall(Client cntxt, MalBlkPtr mb, MalStkPtr stk, int
> pc);
> mal_export str call2str(MalBlkPtr mb, MalStkPtr stk, int pc, int flags);
>
> mal_export str runMALDebugger(Client cntxt, Symbol s);
> @@ -742,6 +743,63 @@
> stream_printf(out, "#%s\n", msg);
> GDKfree(msg);
> }
> +static void
> +mdbBacktrace(Client cntxt, MalStkPtr stk, int pci){
> + for (; stk != NULL; stk = stk->up) {
> + printCall(cntxt, stk->blk, stk, pci);
> + if (stk->up)
> + pci = stk->up->pcup;
> + }
> +}
> +...@-
> +Sometimes we may want to trace the changes applied to the
> +BAT buffer pool and report them together with the MAL
> +instruction where it happened.
> +...@c
> +static int BBPtraceEnabled = 0;
> +static str BBPtracePattern = NULL;
> +char
> +BBPTraceCall(Client cntxt, MalBlkPtr mb, MalStkPtr stk, int pc)
> +{
> + static int *BBPmirror = NULL;
> + static int bbpsize;
> + char lbuf[1024], pbuf[1024];
> + int i, action;
> + (void) mb;
> +
> + if ( BBPtraceEnabled == 0)
> + return 0;
> + if (BBPmirror == NULL ){
> + bbpsize= BBPsize;
> + BBPmirror = (int*) GDKzalloc(sizeof(int) * BBPsize);
> + }
> + if( BBPsize > bbpsize) {
> + int *old = BBPmirror;
> + BBPmirror = (int*) GDKzalloc(sizeof(int) * BBPsize);
> + memcpy((char*)BBPmirror, (char*)old, sizeof(int) * bbpsize);
> + bbpsize= BBPsize;
> + GDKfree(old);
> + }
> + /* no growing BBP yet */
> + action = 0;
> + for ( i=0; i<bbpsize; i++){
> + /* what happened to this BAT */
> + if ( BBPmirror[i] != BBP_lrefs(i)){
> + BBPlogical(i,lbuf);
> + if ( BBPtracePattern &&
> +
> strncmp(lbuf,BBPtracePattern,strlen(BBPtracePattern)) )
> + continue;
> + BBPphysical(i,pbuf);
> + stream_printf(cntxt->fdout, "#BBP state change of %s %s
> entry %d refs %d:\n",
> + lbuf,pbuf,i, BBP_lrefs(i));
> + action = 1;
> + }
> + BBPmirror[i] = BBP_lrefs(i);
> + }
> + if ( action )
> + mdbBacktrace(cntxt, stk, pc);
> + return 's';
> +}
>
> static void
> printBATproperties(stream *f, BAT *b){
> @@ -756,7 +814,7 @@
> if (b->T->parentid)
> stream_printf(f, "tail view on %s ", BBPname(b->T->parentid));
> }
> -...@+ MAL parser
> +...@+ MAL debugger parser
> The debugger structure is inherited from GDB.
> The routine mdbCommand is called with p=0 after finishing a mal- function
> call
> and before continuing at the next level of invocation.
> @@ -802,14 +860,6 @@
> return getMalBlkHistory(mb,-1);
> }
>
> -static void
> -mdbBacktrace(Client cntxt, MalStkPtr stk, int pci){
> - for (; stk != NULL; stk = stk->up) {
> - printCall(cntxt, stk->blk, stk, pci);
> - if (stk->up)
> - pci = stk->up->pcup;
> - }
> -}
>
> void
> mdbCommand(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p, int pc)
> @@ -1089,6 +1139,16 @@
> int i,limit;
>
> skipWord(cntxt, b);
> + /* bbp change tracing enabling */
> + if ( strncmp(b,"trace",5) == 0){
> + skipWord(cntxt, b);
> + BBPtraceEnabled = !BBPtraceEnabled;
> + if ( BBPtraceEnabled && *b )
> + BBPtracePattern = GDKstrdup(b);
> + stream_printf(out,"#bbp trace enabled
> %d\n", BBPtraceEnabled);
> + stk->cmd = 'c';
> + break;
> + }
> i = BBPindex(b);
> if( i)
> limit=i+1;
> @@ -1437,6 +1497,8 @@
> return;
> }
>
> + if ( BBPTraceCall(cntxt,mb,stk,pc))
> + mdbCommand(cntxt, mb, stk, p, pc);
> switch (stk->cmd) {
> case 'c':
> p = getInstrPtr(mb, pc);
>
>
> ------------------------------------------------------------------------------
> Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA
> -OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise
> -Strategies to boost innovation and cut costs with open source participation
> -Receive a $600 discount off the registration fee with the source code: SFAD
> http://p.sf.net/sfu/XcvMzF8H
> _______________________________________________
> Monetdb-checkins mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/monetdb-checkins
>
--
| Dr. Stefan Manegold | mailto:[email protected] |
| CWI, P.O.Box 94079 | http://www.cwi.nl/~manegold/ |
| 1090 GB Amsterdam | Tel.: +31 (20) 592-4212 |
| The Netherlands | Fax : +31 (20) 592-4312 |
------------------------------------------------------------------------------
Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA
-OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise
-Strategies to boost innovation and cut costs with open source participation
-Receive a $600 discount off the registration fee with the source code: SFAD
http://p.sf.net/sfu/XcvMzF8H
_______________________________________________
Monetdb-developers mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/monetdb-developers