本文整理汇总了C++中debug4函数的典型用法代码示例。如果您正苦于以下问题:C++ debug4函数的具体用法?C++ debug4怎么用?C++ debug4使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了debug4函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: adler_lookup_table_test
//Our table may have false positives, but never false negatives
//I.E. For items which ARE in the table, it is ALWAYS correct. (Returns true)
//For items which ARE NOT in the table, it is USUALLY correct. (Returns false, but collisions can return true)
void adler_lookup_table_test(int data_count, int data_offset, int bit_table_width, const char *data, int data_len) {
debug4("%d %d\n", data_count, bit_table_width);
struct adler32table testTable;
struct adler32 adler;
short *shorts = (short*) data;
int i;
assert(data_len >= ((4*data_count)+data_offset)); //4 bytes for a 'fake' adler32 instance
adler_table_init(&testTable, bit_table_width);
for (i=data_offset; i < data_count; i++) {
adler.aVal = shorts[2*i];
adler.bVal = shorts[2*i + 1];
adler_table_update(&testTable, &adler);
}
for (i=data_offset; i < data_count; i++) {
adler.aVal = shorts[2*i];
adler.bVal = shorts[(2*i)+1];
debug4("Vals: %d %d\n", shorts[2*i], shorts[2*i + 1]);
assert(adler_table_present(&testTable, &adler));
}
adler_table_free(&testTable);
}
示例2: init
/*
* init() is called when the plugin is loaded, before any other functions
* are called. Put global initialization here.
*/
extern int init ( void )
{
static int first = 1;
if(first) {
/* since this can be loaded from many different places
only tell us once. */
verbose("%s loaded", plugin_name);
first = 0;
} else {
debug4("%s loaded", plugin_name);
}
return SLURM_SUCCESS;
}
示例3: conf_proxy_reset_settings_cb
static void
conf_proxy_reset_settings_cb (GSettings *settings,
guint cnxn_id,
gchar *key,
gpointer user_data)
{
gchar *proxyname, *proxyusername, *proxypassword;
gint proxyport;
gint proxydetectmode;
gboolean proxyuseauth;
proxyname = NULL;
proxyport = 0;
proxyusername = NULL;
proxypassword = NULL;
conf_get_int_value (PROXY_DETECT_MODE, &proxydetectmode);
switch (proxydetectmode) {
default:
case 0:
debug0 (DEBUG_CONF, "proxy auto detect is configured");
/* nothing to do, all done by libproxy inside libsoup */
break;
case 1:
debug0 (DEBUG_CONF, "proxy is disabled by user");
/* nothing to do */
break;
case 2:
debug0 (DEBUG_CONF, "manual proxy is configured");
conf_get_str_value (PROXY_HOST, &proxyname);
conf_get_int_value (PROXY_PORT, &proxyport);
conf_get_bool_value (PROXY_USEAUTH, &proxyuseauth);
if (proxyuseauth) {
conf_get_str_value (PROXY_USER, &proxyusername);
conf_get_str_value (PROXY_PASSWD, &proxypassword);
}
break;
}
debug4 (DEBUG_CONF, "Manual proxy settings are now %s:%d %s:%s", proxyname != NULL ? proxyname : "NULL", proxyport,
proxyusername != NULL ? proxyusername : "NULL",
proxypassword != NULL ? proxypassword : "NULL");
network_set_proxy (proxydetectmode, proxyname, proxyport, proxyusername, proxypassword);
}
示例4: DeleteEverySym
void DeleteEverySym(void)
{ int i, j, load, cost; OBJECT p, plink, link, x, entry;
debug0(DST, DD, "DeleteEverySym()");
/* dispose the bodies of all symbols */
for( i = 0; i < MAX_TAB; i++ )
{ entry = (OBJECT) &symtab[i];
for( plink = Down(entry); plink != entry; plink = NextDown(plink) )
{ Child(p, plink);
for( link = Down(p); link != p; link = NextDown(link) )
{ Child(x, link); DeleteSymBody(x);
/* *** will not work now
while( base_uses(x) != nilobj )
{ tmp = base_uses(x); base_uses(x) = next(tmp);
PutMem(tmp, USES_SIZE);
}
while( uses(x) != nilobj )
{ tmp = uses(x); uses(x) = next(tmp);
PutMem(tmp, USES_SIZE);
}
*** */
}
}
}
/* dispose the symbol name strings, gather statistics, and print them */
load = cost = 0;
for( i = 0; i < MAX_TAB; i++ )
{ j = 1; entry = (OBJECT) &symtab[i];
while( Down(entry) != entry )
{ load += 1; cost += j; j += 1;
DisposeChild(Down(entry));
}
}
if( load > 0 )
{ debug4(DST, DD, "size = %d, items = %d (%d%%), probes = %.1f",
MAX_TAB, load, (100*load)/MAX_TAB, (float) cost/load);
}
else
{ debug1(DST, DD, "table size = %d, no entries in table", MAX_TAB);
}
debug0(DST, DD, "DeleteEverySym returning.");
} /* end DeleteEverySym */
示例5: scan_info
void scan_info(const char* filename)
{
struct stat statbuf;
char infoname[100];
time_t expiry;
int fd;
unsigned i;
strcpy(infoname, "info/");
strcpy(infoname+5, filename);
if((fd = open(infoname, O_RDONLY)) == -1 ||
fstat(fd, &statbuf) == -1) {
/* This could race with qmail-clean, ignore missing files. */
if (errno == ENOENT)
return;
die3sys(111, "Can't open or stat info file '", infoname, "'");
}
/* Handle the file only if it's expiry time (creation time + opt_age)
is before now and after the last run */
for (i = 0; i < opt_age_count; ++i) {
expiry = statbuf.st_mtime + opt_ages[i];
debug4(1, "filename=", filename, " expiry=", utoa(expiry));
if(expiry > now)
debug1(1, "ignoring, has not yet expired");
else if(expiry <= lastrun) {
debug1(1, "ignoring, was previously expired");
break;
}
else {
/* Load the sender address from the info file */
char* sender = malloc(statbuf.st_size);
if (read(fd, sender, statbuf.st_size) != statbuf.st_size)
die3sys(111, "Reading from info file '", infoname, "' failed");
if(check_rcpt(sender+1))
make_bounce(sender+1, filename, opt_ages[i]);
else
debug2(1, "ignoring, sender was not in rcpthosts: ", sender+1);
free(sender);
break;
}
}
close(fd);
}
示例6: main
int main(int argc, char **argv) {
gf_t *gfield_context = malloc(sizeof(gf_t));
uint32_t *vmond_row = malloc(NUM_CHECKSUMS*sizeof(uint32_t));
uint32_t *chksums = calloc(NUM_CHECKSUMS, sizeof(uint32_t));
uint32_t data = 0x41414141;
debug4("Initializing gf.\n");
gf_init_easy(gfield_context, FIELD_SIZE);
for (int i = 0; i < 32; i++) {
printarray(chksums, NUM_CHECKSUMS);
createvmond(gfield_context, vmond_row, NUM_CHECKSUMS, i+1);
updatechecksum(gfield_context, chksums, vmond_row, NUM_CHECKSUMS, data);
//stepvmond(gfield_context, vmond_matrix, FIELD_SIZE);
}
printarray(chksums, NUM_CHECKSUMS);
//free(gfield_context);
argc=0; argv=0;
}
示例7: as_mysql_node_up
extern int as_mysql_node_up(mysql_conn_t *mysql_conn,
struct node_record *node_ptr,
time_t event_time)
{
char* query;
int rc = SLURM_SUCCESS;
if (check_connection(mysql_conn) != SLURM_SUCCESS)
return ESLURM_DB_CONNECTION;
query = xstrdup_printf(
"update \"%s_%s\" set time_end=%ld where "
"time_end=0 and node_name='%s';",
mysql_conn->cluster_name, event_table,
event_time, node_ptr->name);
debug4("%d(%s:%d) query\n%s",
mysql_conn->conn, THIS_FILE, __LINE__, query);
rc = mysql_db_query(mysql_conn, query);
xfree(query);
return rc;
}
示例8: network_set_proxy
void
network_set_proxy (ProxyDetectMode mode, gchar *host, guint port, gchar *user, gchar *password)
{
g_free (proxyname);
g_free (proxyusername);
g_free (proxypassword);
proxymode = mode;
proxyname = host;
proxyport = port;
proxyusername = user;
proxypassword = password;
/* session will be NULL if we were called from conf_init() as that's called
* before net_init() */
if (session)
network_set_soup_session_proxy (session, mode, host, port, user, password);
debug4 (DEBUG_NET, "proxy set to http://%s:%[email protected]%s:%d", user, password, host, port);
network_monitor_proxy_changed ();
}
示例9: SetNeighbours
void SetNeighbours(OBJECT link, BOOLEAN ratm, OBJECT *pg, OBJECT *pdef,
OBJECT *sg, OBJECT *sdef, int *side)
{ OBJECT plink, slink;
/* find preceding definite; if it exists, set *pg */
*pg = nilobj;
for( plink = PrevDown(link); type(plink) == LINK; plink = PrevDown(plink) )
{ Child(*pdef, plink);
if( type(*pdef) == SPLIT ? SplitIsDefinite(*pdef) : is_definite(type(*pdef)) )
{ Child(*pg, PrevDown(link));
while( is_index(type(*pg)) )
{ link = PrevDown(link);
Child(*pg, PrevDown(link));
}
assert( type(*pg) == GAP_OBJ, "SetNeighbours: type(*pg)!" );
break;
}
}
/* find succeeding definite; if it exists, set *sg */
*sg = nilobj;
for( slink = NextDown(link); type(slink) == LINK; slink = NextDown(slink) )
{ Child(*sdef, slink);
if( type(*sdef) == SPLIT ? SplitIsDefinite(*sdef) : is_definite(type(*sdef)) )
{ Child(*sg, PrevDown(slink));
while( is_index(type(*sg)) )
{ slink = PrevDown(slink);
Child(*sg, PrevDown(slink));
}
assert( type(*sg) == GAP_OBJ, "SetNeighbours: type(*sg)!" );
break;
}
}
*side = ratm ? BACK : *pg == nilobj || mark(gap(*pg)) ? ON : FWD;
debug4(DSA, DD,
"SetNeighbours: ratm == %s, pg %s nilobj, sg %s nilobj, side == %s",
bool(ratm), *pg == nilobj ? "==" : "!=", *sg == nilobj ? "==" : "!=",
*side == BACK ? "BACK" : *side == ON ? "ON" : "FWD");
} /* end SetNeighbours */
示例10: _log_lua_msg
/*
* Lua interface to SLURM log facility:
*/
static int _log_lua_msg (lua_State *L)
{
const char *prefix = "job_submit.lua";
int level = 0;
const char *msg;
/*
* Optional numeric prefix indicating the log level
* of the message.
*/
/*
* Pop message off the lua stack
*/
msg = lua_tostring(L, -1);
lua_pop (L, 1);
/*
* Pop level off stack:
*/
level = (int)lua_tonumber (L, -1);
lua_pop (L, 1);
/*
* Call appropriate slurm log function based on log-level argument
*/
if (level > 4)
debug4 ("%s: %s", prefix, msg);
else if (level == 4)
debug3 ("%s: %s", prefix, msg);
else if (level == 3)
debug2 ("%s: %s", prefix, msg);
else if (level == 2)
debug ("%s: %s", prefix, msg);
else if (level == 1)
verbose ("%s: %s", prefix, msg);
else if (level == 0)
info ("%s: %s", prefix, msg);
return (0);
}
示例11: FindShift
FULL_LENGTH FindShift(OBJECT x, OBJECT y, int dim)
{ FULL_LENGTH len = 0, res = 0; /* initial values unused */
debug4(DSF, DD, "FindShift(%s, %s %s, %s)", Image(type(x)),
Image(type(y)), EchoObject(y), dimen(dim));
/* first determine the magnitude of the shift */
switch( units(shift_gap(x)) )
{
case FIXED_UNIT: len = width(shift_gap(x));
break;
case NEXT_UNIT: len = (size(y, dim) * width(shift_gap(x))) / FR;
break;
default: assert(FALSE, "FindShift: units");
break;
}
/* then calculate the shift depending on the shift type */
switch( shift_type(x) )
{
case GAP_ABS: res = len - back(y, dim);
break;
case GAP_INC: res = len;
break;
case GAP_DEC: res = - len;
break;
default: assert(FALSE, "FindShift: type");
break;
}
debug1(DSF, DD, "FindShift returning %s", EchoLength(res));
return res;
} /* end FindShift */
示例12: _mysql_query_internal
/* NOTE: Insure that mysql_conn->lock is set on function entry */
static int _mysql_query_internal(MYSQL *db_conn, char *query)
{
int rc = SLURM_SUCCESS;
if (!db_conn)
fatal("You haven't inited this storage yet.");
/* clear out the old results so we don't get a 2014 error */
_clear_results(db_conn);
if (mysql_query(db_conn, query)) {
const char *err_str = mysql_error(db_conn);
errno = mysql_errno(db_conn);
if (errno == ER_NO_SUCH_TABLE) {
debug4("This could happen often and is expected.\n"
"mysql_query failed: %d %s\n%s",
errno, err_str, query);
errno = 0;
goto end_it;
}
error("mysql_query failed: %d %s\n%s", errno, err_str, query);
if (errno == ER_LOCK_WAIT_TIMEOUT) {
fatal("mysql gave ER_LOCK_WAIT_TIMEOUT as an error. "
"The only way to fix this is restart the "
"calling program");
}
/* FIXME: If we get ER_LOCK_WAIT_TIMEOUT here we need
* to restart the connections, but it appears restarting
* the calling program is the only way to handle this.
* If anyone in the future figures out a way to handle
* this, super. Until then we will need to restart the
* calling program if you ever get this error.
*/
rc = SLURM_ERROR;
}
end_it:
return rc;
}
示例13: _process_job_usage
/* process job usage data */
static int
_process_job_usage(pgsql_conn_t *pg_conn, char *cluster, time_t start,
time_t end, List cu_list, List ru_list, List au_list,
List wu_list)
{
DEF_VARS;
PGresult *result2;
ListIterator r_itr;
int seconds = 0, last_id = -1, last_wckeyid = -1;
local_cluster_usage_t *c_usage = NULL;
local_resv_usage_t *r_usage = NULL;
local_id_usage_t *a_usage = NULL, *w_usage = NULL;
int track_wckey = slurm_get_track_wckey();
char *gj_fields = "job_db_inx,id_job,id_assoc,id_wckey,time_eligible,"
"time_start,time_end,time_suspended,cpus_alloc,cpus_req,"
"id_resv";
enum {
F_DB_INX,
F_JOBID,
F_ASSOCID,
F_WCKEYID,
F_ELG,
F_START,
F_END,
F_SUSPENDED,
F_ACPU,
F_RCPU,
F_RESVID,
F_COUNT
};
query = xstrdup_printf(
"SELECT %s FROM %s.%s WHERE (time_eligible < %ld AND "
"(time_end >= %ld OR time_end = 0)) ORDER BY id_assoc, "
"time_eligible", gj_fields, cluster, job_table,
(long)end, (long)start);
result = DEF_QUERY_RET;
if (!result) {
error("failed to get jobs");
return SLURM_ERROR;
}
r_itr = list_iterator_create(ru_list);
FOR_EACH_ROW {
int job_id = atoi(ROW(F_JOBID));
int assoc_id = atoi(ROW(F_ASSOCID));
int wckey_id = atoi(ROW(F_WCKEYID));
int resv_id = atoi(ROW(F_RESVID));
int row_eligible = atoi(ROW(F_ELG));
int row_start = atoi(ROW(F_START));
int row_end = atoi(ROW(F_END));
int row_acpu = atoi(ROW(F_ACPU));
int row_rcpu = atoi(ROW(F_RCPU));
seconds = 0;
if (row_start && (row_start < start))
row_start = start;
if (!row_start && row_end)
row_start = row_end;
if (!row_end || row_end > end)
row_end = end;
if (!row_start || ((row_end - row_start) < 1))
goto calc_cluster;
seconds = (row_end - row_start);
if (strcmp(ROW(F_SUSPENDED), "0")) {
query = xstrdup_printf(
"SELECT %s.get_job_suspend_time(%s, %ld, %ld);",
cluster, ROW(F_DB_INX), start, end);
result2 = DEF_QUERY_RET;
if (!result2) {
list_iterator_destroy(r_itr);
return SLURM_ERROR;
}
seconds -= atoi(PQgetvalue(result2, 0, 0));
PQclear(result2);
}
if (seconds < 1) {
debug4("This job (%u) was suspended "
"the entire hour", job_id);
/* TODO: how about resv usage? */
continue;
}
if (last_id != assoc_id) { /* ORDER BY associd */
a_usage = xmalloc(sizeof(local_id_usage_t));
a_usage->id = assoc_id;
list_append(au_list, a_usage);
last_id = assoc_id;
}
a_usage->a_cpu += seconds * row_acpu;
if (!track_wckey)
goto calc_cluster;
/* do the wckey calculation */
if (last_wckeyid != wckey_id) {
//.........这里部分代码省略.........
示例14: as_mysql_get_txn
//.........这里部分代码省略.........
/* make sure we can get the max length out of the database
* when grouping the names
*/
if (txn_cond->with_assoc_info)
mysql_db_query(mysql_conn,
"set session group_concat_max_len=65536;");
empty:
if (!locked && (use_cluster_list == as_mysql_cluster_list)) {
slurm_mutex_lock(&as_mysql_cluster_list_lock);
locked = 1;
}
xfree(tmp);
xstrfmtcat(tmp, "%s", txn_req_inx[i]);
for(i=1; i<TXN_REQ_COUNT; i++) {
xstrfmtcat(tmp, ", %s", txn_req_inx[i]);
}
query = xstrdup_printf("select %s from %s", tmp, txn_table);
if (extra) {
xstrfmtcat(query, "%s", extra);
xfree(extra);
}
xstrcat(query, " order by timestamp;");
xfree(tmp);
if (debug_flags & DEBUG_FLAG_DB_QUERY)
DB_DEBUG(mysql_conn->conn, "query\n%s", query);
if (!(result = mysql_db_query_ret(
mysql_conn, query, 0))) {
xfree(query);
goto end_it;
}
xfree(query);
txn_list = list_create(slurmdb_destroy_txn_rec);
while ((row = mysql_fetch_row(result))) {
slurmdb_txn_rec_t *txn = xmalloc(sizeof(slurmdb_txn_rec_t));
list_append(txn_list, txn);
txn->action = slurm_atoul(row[TXN_REQ_ACTION]);
txn->actor_name = xstrdup(row[TXN_REQ_ACTOR]);
txn->id = slurm_atoul(row[TXN_REQ_ID]);
txn->set_info = xstrdup(row[TXN_REQ_INFO]);
txn->timestamp = slurm_atoul(row[TXN_REQ_TS]);
txn->where_query = xstrdup(row[TXN_REQ_NAME]);
txn->clusters = xstrdup(row[TXN_REQ_CLUSTER]);
if (txn_cond && txn_cond->with_assoc_info
&& (txn->action == DBD_ADD_ASSOCS
|| txn->action == DBD_MODIFY_ASSOCS
|| txn->action == DBD_REMOVE_ASSOCS)) {
MYSQL_RES *result2 = NULL;
MYSQL_ROW row2;
if (txn->clusters) {
query = xstrdup_printf(
"select "
"group_concat(distinct user "
"order by user), "
"group_concat(distinct acct "
"order by acct) "
"from \"%s_%s\" where %s",
txn->clusters, assoc_table,
row[TXN_REQ_NAME]);
debug4("%d(%s:%d) query\n%s", mysql_conn->conn,
THIS_FILE, __LINE__, query);
if (!(result2 = mysql_db_query_ret(
mysql_conn, query, 0))) {
xfree(query);
continue;
}
xfree(query);
if ((row2 = mysql_fetch_row(result2))) {
if (row2[0] && row2[0][0])
txn->users = xstrdup(row2[0]);
if (row2[1] && row2[1][0])
txn->accts = xstrdup(row2[1]);
}
mysql_free_result(result2);
} else {
error("We can't handle associations "
"from action %s yet.",
slurmdbd_msg_type_2_str(txn->action, 1));
}
}
}
mysql_free_result(result);
end_it:
if (locked)
slurm_mutex_unlock(&as_mysql_cluster_list_lock);
return txn_list;
}
示例15: rd_ioctl
static int rd_ioctl(register struct inode *inode, struct file *file,
unsigned int cmd, unsigned int arg)
{
unsigned long size;
unsigned int i;
int j, k, target = DEVICE_NR(inode->i_rdev);
if (!suser())
return -EPERM;
debug2("RD: ioctl %d %s\n", target, (cmd ? "kill" : "make"));
switch (cmd) {
case RDCREATE:
if (rd_info[target].flags && RD_BUSY) {
return -EBUSY;
} else {
/* allocate memory */
#if 0
rd_info[target].size = 0;
#endif
k = -1;
for (i = 0; i <= (arg - 1) / ((SEG_SIZE / 1024) * P_SIZE); i++) {
j = find_free_seg(); /* find free place in queue */
debug1("RD: ioctl find_free_seg() = %d\n", j);
if (j == -1) {
rd_dealloc(target);
return -ENOMEM;
}
if (i == 0)
rd_info[target].index = j;
if (i == (arg / ((SEG_SIZE / 1024) * P_SIZE)))
/* size in 16 byte pagez = (arg % 64) * 64 */
size =
(arg % ((SEG_SIZE / 1024) * P_SIZE)) *
((SEG_SIZE / 1024) * P_SIZE);
else
size = SEG_SIZE;
rd_segment[j].segment = mm_alloc(size);
if (rd_segment[j].segment == -1) {
rd_dealloc(target);
return -ENOMEM;
}
debug4("RD: ioctl pass: %d, allocated %d pages, rd_segment[%d].segment = 0x%x\n",
i, (int) size, j, rd_segment[j].segment);
/* recalculate int size to reflect size in sectors, not pages */
size = size / DIVISOR;
rd_segment[j].seg_size = size; /* size in sectors */
debug2("RD: ioctl rd_segment[%d].seg_size = %d sectors\n",
j, rd_segment[j].seg_size);
rd_info[target].size += rd_segment[j].seg_size; /* size in 512 B blocks */
size = (long) rd_segment[j].seg_size * SECTOR_SIZE;
debug1("RD: ioctl size = %ld\n", size);
/* this terrible hack makes sure fmemset clears whole segment even if size == 64 KB :) */
if (size != ((long) SEG_SIZE * (long) P_SIZE)) {
debug2("RD: ioctl calling fmemset(0, 0x%x, 0, %d) ..\n",
rd_segment[j].segment, (int) size);
fmemset(0, rd_segment[j].segment, 0, (int) size); /* clear seg_size * SECTOR_SIZE bytes */
} else {
debug2("RD: ioctl calling fmemset(0, 0x%x, 0, %d) ..\n",
rd_segment[j].segment, (int) (size / 2));
fmemset(0, rd_segment[j].segment, 0, (int) (size / 2)); /* we could hardcode 32768 instead of size / 2 here */
debug3("rd_ioctl(): calling fmemset(%d, 0x%x, 0, %d) ..\n",
(int) (size / 2), rd_segment[j].segment,
(int) (size / 2));
fmemset((size / 2), rd_segment[j].segment, 0,
(int) (size / 2));
}
if (k != -1)
rd_segment[k].next = j; /* set link to next index */
k = j;
}
rd_info[target].flags = RD_BUSY;
debug3("RD: ioctl ramdisk %d created, size = %d blocks, index = %d\n",
target, rd_info[target].size, rd_info[target].index);
}
debug("RD: ioctl about to return 0\n");
return 0;
case RDDESTROY:
if (rd_info[target].flags && RD_BUSY) {
invalidate_inodes(inode->i_rdev);
invalidate_buffers(inode->i_rdev);
rd_dealloc(target);
rd_info[target].flags = 0;
return 0;
} else
return -EINVAL;
}
return -EINVAL;
}