Exemplo n.º 1
0
const bool Message::LoadNNTP(const long nntpmessageid, const long boardid)
{
	std::string sql("");
	if(m_uniqueboardmessageids==true)
	{
		sql="SELECT tblMessage.MessageID, tblMessageBoard.BoardMessageID FROM tblMessage INNER JOIN tblMessageBoard ON tblMessage.MessageID=tblMessageBoard.MessageID WHERE tblMessageBoard.BoardID=? AND tblMessageBoard.BoardMessageID=?;";
	}
	else
	{
		sql="SELECT tblMessage.MessageID, tblMessage.MessageID FROM tblMessage INNER JOIN tblMessageBoard ON tblMessage.MessageID=tblMessageBoard.MessageID WHERE tblMessageBoard.BoardID=? AND tblMessage.MessageID=?;";
	}
	SQLite3DB::Statement st=m_db->Prepare(sql);
	st.Bind(0,boardid);
	st.Bind(1,nntpmessageid);
	st.Step();
	if(st.RowReturned())
	{
		int dbmessageid;
		int tempint;
		st.ResultInt(0,dbmessageid);
		st.ResultInt(1,tempint);
		m_nntpmessageid=tempint;
		return LoadDB(dbmessageid,boardid);
	}
	else
	{
		return false;
	}
}
Exemplo n.º 2
0
//_____________________________________________________________________________
Int_t THaTotalShower::ReadDatabase( const TDatime& date )
{
  // Read this detector's parameters from the database.
  // 'date' contains the date/time of the run being analyzed.

  FILE* fi = OpenFile( date );
  if( !fi ) return kFileError;

  // Read configuration parameters
  Double_t dxdy[2];
  DBRequest request[] = {
    { "max_dxdy",  dxdy, kDouble, 2 },
    { 0 }
  };
  Int_t err = LoadDB( fi, date, request, fPrefix );
  fclose(fi);
  if( err )
    return err;

  fMaxDx = dxdy[0];
  fMaxDy = dxdy[1];

  fIsInit = true;
  return kOK;
}
Exemplo n.º 3
0
void MainWindow::movieAdded(QString name, QString nr)
{
    QSqlQuery query;
    query.exec("INSERT INTO movie (name,nr) VALUES(\""+name+"\","+nr+")");
    query.next();
    LoadDB();
}
Exemplo n.º 4
0
const bool Message::Load(const std::string &messageuuid)
{

	std::string uuid=messageuuid;

	if(uuid.size()>0 && uuid[0]=='<')
	{
		uuid.erase(0,1);
	}
	if(uuid.size()>0 && uuid[uuid.size()-1]=='>')
	{
		uuid.erase(uuid.size()-1);
	}
	if(uuid.find("@freenetproject.org")!=std::string::npos)
	{
		uuid.erase(uuid.find("@freenetproject.org"));
	}

	SQLite3DB::Statement st=m_db->Prepare("SELECT MessageID FROM tblMessage WHERE MessageUUID=?;");
	st.Bind(0,uuid);
	st.Step();

	if(st.RowReturned())
	{
		int dbmessageid;
		st.ResultInt(0,dbmessageid);

		return LoadDB(dbmessageid);
	}
	else
	{
		return false;
	}
}
Exemplo n.º 5
0
void GDALPamProxyDB::CheckLoadDB()

{
    if( nUpdateCounter == -1 )
        LoadDB();
}
Exemplo n.º 6
0
Techniques::Static::AhoCorasick::AhoCorasick(char* text, unsigned int text_size)
{
	LoadDB();
	Search_Result = Search(text, text_size);
}
Exemplo n.º 7
0
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    int wmId, wmEvent;
    PAINTSTRUCT ps;
    HDC hdc;

    RECT rcClient;                       // The parent window's client area.
    static HMENU hMainMenu, hFileMenu;
    static HWND hSearchButton;
    int i;

    OPENFILENAME ofn;
    TCHAR szFileName[256] = "";

    static struct {
        TCHAR *name;
        int width;
    } columns[] = {
        { TEXT("Номер телефона:"), 100},
        { TEXT("Фамилия:"), 100},
        { TEXT("Имя:"), 100},
        { TEXT("Отчество:"), 100},
        { TEXT("Улица:"), 150},
        { TEXT("Дом:"), 100},
        { TEXT("Корпус:"), 100},
        { TEXT("Квартира:"), 100}
    };
    const int ColumnsCount = _countof(columns);

    switch (message)
    {
    case WM_CREATE:
        LoadDatabaseDLL();
        hMainMenu=CreateMenu();
        hFileMenu=CreatePopupMenu();
        i=0;
        CreateMenuItem(hFileMenu,"&Load database",i++,ID_BUTTONLOADDB,NULL,FALSE,MFT_STRING);
        CreateMenuItem(hFileMenu,"&Show database",i++,ID_BUTTONSHOWDB,NULL,FALSE,MFT_STRING);
        CreateMenuItem(hFileMenu,"&Exit",i++,IDM_EXIT,NULL,FALSE,MFT_STRING);
        i=0;
        CreateMenuItem(hMainMenu,"&File",i++,0,hFileMenu,FALSE,MFT_STRING);
        SetMenu(hWnd,hMainMenu);
        DrawMenuBar(hWnd);

        GetClientRect (hWnd, &rcClient);
        hListView = CreateWindowEx(
                        WS_EX_STATICEDGE,
                        WC_LISTVIEW,
                        NULL,
                        WS_CHILD|WS_VISIBLE|LVS_REPORT|LVS_EDITLABELS,
                        0, 0,
                        rcClient.right, rcClient.bottom-100,
                        hWnd, NULL, hInst, NULL);
        ListView_SetExtendedListViewStyle(hListView,LVS_EX_FULLROWSELECT);
        //adding columns
        for (int i=0; i<ColumnsCount; i++)
        {
            AddColumnToListView(hListView, columns[i].name, i, columns[i].width);
        }

        hPhoneLabel = CreateWindowEx( WS_EX_TRANSPARENT, "STATIC", "", WS_CHILD | WS_VISIBLE | SS_LEFT | WS_SYSMENU , 5, 400, 65, 25, hWnd, hMainMenu, hInst, NULL);
        SendMessage(hPhoneLabel, WM_SETTEXT, NULL, (LPARAM) "Телефон:");
        hLastNameLabel = CreateWindowEx( WS_EX_TRANSPARENT, "STATIC", "", WS_CHILD | WS_VISIBLE | SS_LEFT | WS_SYSMENU , 90, 400, 100, 25, hWnd, hMainMenu, hInst, NULL);
        SendMessage(hLastNameLabel, WM_SETTEXT, NULL, (LPARAM) "Фамилия:");
        hNameLabel = CreateWindowEx( WS_EX_TRANSPARENT, "STATIC", "", WS_CHILD | WS_VISIBLE | SS_LEFT | WS_SYSMENU , 190, 400, 100, 25, hWnd, hMainMenu, hInst, NULL);
        SendMessage(hNameLabel, WM_SETTEXT, NULL, (LPARAM) "Имя:");
        hPatronymLabel = CreateWindowEx( WS_EX_TRANSPARENT, "STATIC", "", WS_CHILD | WS_VISIBLE | SS_LEFT | WS_SYSMENU , 290, 400, 100, 25, hWnd, hMainMenu, hInst, NULL);
        SendMessage(hPatronymLabel, WM_SETTEXT, NULL, (LPARAM) "Отчество:");
        hStreetLabel = CreateWindowEx( WS_EX_TRANSPARENT, "STATIC", "", WS_CHILD | WS_VISIBLE | SS_LEFT | WS_SYSMENU , 390, 400, 150, 25, hWnd, hMainMenu, hInst, NULL);
        SendMessage(hStreetLabel, WM_SETTEXT, NULL, (LPARAM) "Улица");
        hHouseLabel = CreateWindowEx( WS_EX_TRANSPARENT, "STATIC", "", WS_CHILD | WS_VISIBLE | SS_LEFT | WS_SYSMENU , 540, 400, 50, 25, hWnd, hMainMenu, hInst, NULL);
        SendMessage(hHouseLabel, WM_SETTEXT, NULL, (LPARAM) "Дом");
        hHousingLabel = CreateWindowEx( WS_EX_TRANSPARENT, "STATIC", "", WS_CHILD | WS_VISIBLE | SS_LEFT | WS_SYSMENU , 590, 400, 60, 25, hWnd, hMainMenu, hInst, NULL);
        SendMessage(hHousingLabel, WM_SETTEXT, NULL, (LPARAM)"Корпус:");
        hApartmentLabel = CreateWindowEx( WS_EX_TRANSPARENT, "STATIC", "", WS_CHILD | WS_VISIBLE | SS_LEFT | WS_SYSMENU , 650, 400, 30, 25, hWnd, hMainMenu, hInst, NULL);
        SendMessage(hApartmentLabel, WM_SETTEXT, NULL, (LPARAM) "кв:");

        hPhoneEdit = CreateWindowEx(WS_EX_CLIENTEDGE, "edit", "", WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_BORDER | ES_LEFT,	3, 425, 83, 25,	hWnd, (HMENU)(101),	hInst, NULL);
        hLastNameEdit = CreateWindowEx(WS_EX_CLIENTEDGE, "edit", "", WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_BORDER | ES_LEFT,	90, 425, 98, 25,	hWnd, (HMENU)(101),	hInst, NULL);
        hNameEdit = CreateWindowEx(WS_EX_CLIENTEDGE, "edit", "", WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_BORDER | ES_LEFT,	190, 425, 98, 25,	hWnd, (HMENU)(101),	hInst, NULL);
        hPatronymEdit = CreateWindowEx(WS_EX_CLIENTEDGE, "edit", "", WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_BORDER | ES_LEFT,	290, 425, 98, 25,	hWnd, (HMENU)(101),	hInst, NULL);
        hStreetEdit = CreateWindowEx(WS_EX_CLIENTEDGE, "edit", "", WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_BORDER | ES_LEFT,	390, 425, 148, 25,	hWnd, (HMENU)(101),	hInst, NULL);
        hHouseEdit = CreateWindowEx(WS_EX_CLIENTEDGE, "edit", "", WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_BORDER | ES_LEFT,	540, 425, 98, 25,	hWnd, (HMENU)(101),	hInst, NULL);
        hHousingEdit = CreateWindowEx(WS_EX_CLIENTEDGE, "edit", "", WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_BORDER | ES_LEFT,	590, 425, 58, 25,	hWnd, (HMENU)(101),	hInst, NULL);
        hApartmentEdit = CreateWindowEx(WS_EX_CLIENTEDGE, "edit", "", WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_BORDER | ES_LEFT,	650, 425, 28, 25,	hWnd, (HMENU)(101),	hInst, NULL);

        hSearchButton = CreateWindowEx(
                            WS_EX_STATICEDGE,
                            WC_BUTTON,
                            NULL,
                            WS_CHILD|WS_VISIBLE|LVS_REPORT|LVS_EDITLABELS,
                            690, 425,
                            50, 25,
                            hWnd, NULL, hInst, NULL);
        SendMessage(hSearchButton, WM_SETTEXT, NULL, (LPARAM) "Поиск");

        ShowWindow(hWnd, NULL);
        UpdateWindow(hWnd);
        break;
    case WM_COMMAND:
        wmId    = LOWORD(wParam);
        wmEvent = HIWORD(wParam);
        // Parse the menu selections:
        switch (wmId)
        {
        case BN_CLICKED:
            if ((HWND)lParam == hSearchButton)
                SearchDB(hWnd, hListView);
            break;
        case ID_BUTTONLOADDB:
            ZeroMemory(&ofn, sizeof(ofn));
            ofn.lStructSize = sizeof(ofn);
            ofn.hwndOwner = hWnd;
            ofn.lpstrFilter = "Text files (*.txt)\0*.txt\0All Files (*.*)\0*.*\0";
            ofn.lpstrFile = szFileName;
            ofn.nMaxFile = MAX_PATH;
            ofn.lpstrTitle = "Open File";
            ofn.Flags = OFN_PATHMUSTEXIST;
            ofn.lpstrDefExt = "txt";

            if(GetOpenFileName(&ofn))
            {
                LoadDB(szFileName,hWnd);
            }
            InvalidateRect(hWnd,NULL,TRUE);
            UpdateWindow(hWnd);

            break;
        case ID_BUTTONSHOWDB:
            ShowDB(hWnd);
            break;
        case IDM_ABOUT:
            DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, About);
            break;
        case IDM_EXIT:
            DestroyWindow(hWnd);
            break;
        default:
            return DefWindowProc(hWnd, message, wParam, lParam);
        }
        break;
    case WM_PAINT:
        hdc = BeginPaint(hWnd, &ps);
        // TODO: Add any drawing code here...
        EndPaint(hWnd, &ps);
        break;
    case WM_DESTROY:
        PostQuitMessage(0);
        break;
    default:
        return DefWindowProc(hWnd, message, wParam, lParam);
    }
    return 0;
}
Exemplo n.º 8
0
Message::Message(SQLite3DB::DB *db, const long dbmessageid, const long boardid):IDatabase(db),m_nntpmessageid(-1)
{
	Option option(db);
	option.GetBool("UniqueBoardMessageIDs",m_uniqueboardmessageids);
	LoadDB(dbmessageid,boardid);
}
Exemplo n.º 9
0
void pprint_ple(Panda__LogEntry *ple) {
    if (!started) {
#ifdef LAVA_PANDALOG_PRINT
        str2ind = LoadDB(std::string("/tmp/lavadb"));
        ind2str = InvertDB(str2ind);
#endif
        started = 1;
    }
    if (ple == NULL){
        printf("Null Panda Log Entry!\n");
        return;
    }
    if (ple->instr == -1) {
        printf ("[after replay end] : ");
    } 
    else {
        printf ("instr=%" PRIu64 " pc=0x%" PRIx64 " :", ple->instr, ple->pc);
    }
 
    // from dwarfp
    if (ple->dwarf_call) {
        printf(" !dwarf call!");
        pprint_dwarf(ple->dwarf_call);
    }
    if (ple->dwarf_ret) {
        printf(" !dwarf ret!");
        pprint_dwarf(ple->dwarf_ret);
    }

    // from asidstory / osi
    if (ple->has_asid) {
        printf (" asid=%" PRIx64, ple->asid);
    }
    
    if (ple->has_process_id != 0) {
        printf (" pid=%d", ple->process_id);
    }
    if (ple->process_name != 0) {
        printf (" process=[%s]", ple->process_name);
    }

    // from file_taint
    if (ple->has_taint_label_number) {
        printf (" tl=%d", ple->taint_label_number);
    }
    if (ple->has_taint_label_virtual_addr) {
        printf (" va=0x%" PRIx64, ple->taint_label_virtual_addr);
    }
    if (ple->has_taint_label_physical_addr) {
        printf (" pa=0x%" PRIx64 , ple->taint_label_physical_addr);
    }

    if (ple->call_stack) {
        pprint_call_stack(ple->call_stack);
    }

#ifdef LAVA_PANDALOG_PRINT
    if (ple->attack_point) {
        pprint_attack_point(ple->attack_point);
    }
#endif
    if (ple->tainted_branch) {
        pprint_tainted_branch(ple->tainted_branch);
    }

//    printf ("ple->tainted_branch_summary = 0x%x\n", ple->tainted_branch_summary);

    if (ple->tainted_branch_summary) {
        pprint_tainted_branch_summary(ple->tainted_branch_summary);
    }
    
    if (ple->taint_query_hypercall) {
        pprint_taint_query_hypercall(ple->taint_query_hypercall);
    }

    if (ple->tainted_instr) {
        pprint_tainted_instr(ple->tainted_instr);
    }

    if (ple->tainted_instr_summary) {
        pprint_tainted_instr_summary(ple->tainted_instr_summary);
    }

    // win7proc
    if (ple->new_pid) { 
    pprint_process("new_pid", ple->new_pid);
    }
    if (ple->nt_create_user_process) {
        printf (" nt_create_user_process ");
        printf (" [ " ); 
        pprint_process("cur",ple->nt_create_user_process->cur_p); 
        printf (" ]");
        printf (" [ " ); 
        pprint_process("new",ple->nt_create_user_process->new_p); 
        printf (" ]");
        printf (" name=[%s] ", 
                ple->nt_create_user_process->new_long_name);
    }
    if (ple->nt_terminate_process) {
        printf (" nt_terminate_process ");
        printf (" [ " ); 
        pprint_process("cur",ple->nt_terminate_process->cur_p);
        printf (" ]");
        printf (" [ " ); 
        pprint_process("term",ple->nt_terminate_process->term_p);
        printf (" ]");
    }
    
    if (ple->nt_create_file) {
        printf (" nt_create_file ");
        pprint_process_file(ple->nt_create_file);
    }
    if (ple->nt_create_file_ret) {
        printf (" nt_create_file_ret ");
        pprint_process_file(ple->nt_create_file_ret);
    }
    
    
    if (ple->nt_read_file) {
        printf (" nt_read_file ");
        pprint_process_file(ple->nt_read_file);
    }
    if (ple->nt_delete_file) {
        printf (" nt_delete_file ");
        pprint_process_file(ple->nt_delete_file);
    }
    if (ple->nt_write_file) {
        printf (" nt_write_file ");
        pprint_process_file(ple->nt_write_file);
    }
    if (ple->nt_set_information_file) {
        printf (" nt_set_information_file ");
        pprint_process("",ple->nt_set_information_file->proc);
        printf ("(orig_filename,%s)", ple->nt_set_information_file->orig_filename);
        printf ("(new_filename,%s)", ple->nt_set_information_file->new_filename);
    }
    if (ple->nt_create_key) {
        printf (" nt_create_key ");
        pprint_process_key(ple->nt_create_key);
    }
    if (ple->nt_create_key_transacted) {
        printf (" nt_create_key_transacted ");
        pprint_process_key(ple->nt_create_key_transacted);
    }
    if (ple->nt_open_key) {
        printf (" nt_open_key ");
        pprint_process_key(ple->nt_open_key);
    }
    if (ple->nt_open_key_ex) {
        printf (" nt_open_key_ex ");
        pprint_process_key(ple->nt_open_key_ex);
    }
    if (ple->nt_open_key_transacted) {
        printf (" nt_open_key_transacted ");
        pprint_process_key(ple->nt_open_key_transacted);
    }
    if (ple->nt_open_key_transacted_ex) {
        printf (" nt_open_key_transacted_ex ");
        pprint_process_key(ple->nt_open_key_transacted_ex);
    }
    if (ple->nt_delete_key) {
        printf (" nt_delete_key ");
        pprint_process_key(ple->nt_delete_key);
    }
    if (ple->nt_query_key) {
        printf (" nt_query_key ");
        pprint_process_key(ple->nt_query_key);
    }
    if (ple->nt_query_value_key) {
        printf (" nt_query_value_key ");
        pprint_process_key_value(ple->nt_query_value_key);
    }
    if (ple->nt_delete_value_key) {
        printf (" nt_delete_value_key ");
        pprint_process_key_value(ple->nt_delete_value_key);
    }
    if (ple->nt_set_value_key) {
        printf (" nt_set_value_key ");
        pprint_process_key_value(ple->nt_set_value_key);
    }
    if (ple->nt_enumerate_key) {
        printf (" nt_enumerate_key ");
        pprint_process_key_index(ple->nt_enumerate_key);
    }
    if (ple->nt_enumerate_value_key) {
        printf (" nt_enumerate_value_key ");
        pprint_process_key_index(ple->nt_enumerate_value_key);
    }
    if (ple->nt_create_section) {
        printf (" nt_create_section ");
        pprint_section(ple->nt_create_section);
    }
    if (ple->nt_open_section) {
        printf (" nt_open_section ");
        pprint_section(ple->nt_open_section);
    }
    if (ple->nt_map_view_of_section) {
        printf (" nt_map_view_of_section ");
        pprint_process("target", ple->nt_map_view_of_section->target);
        pprint_section(ple->nt_map_view_of_section->section);
    }
    if (ple->nt_create_port) {
        printf(" nt_create_port ");
        printf("name = %s ", ple->nt_create_port->port_name);
        pprint_local_port(ple->nt_create_port->port);
    }
    if (ple->nt_connect_port) {
        printf(" nt_connect_port ");
        printf("name = %s ", ple->nt_connect_port->port_name);
        pprint_local_port(ple->nt_connect_port->port);
    }
    if (ple->nt_listen_port) {
        printf(" nt_listen_port ");
        pprint_local_port(ple->nt_listen_port);
    }
    if (ple->nt_accept_connect_port) {
        printf(" nt_accept_connect_port ");
        pprint_local_port(ple->nt_accept_connect_port);
    }
    if (ple->nt_complete_connect_port) {
        printf(" nt_complete_connect_port ");
        pprint_local_port(ple->nt_complete_connect_port);
    }
    if (ple->nt_request_port) {
        printf(" nt_request_port ");
        pprint_local_port(ple->nt_request_port);
    }
    if (ple->nt_request_wait_reply_port) {
        printf(" nt_request_wait_reply_port ");
        pprint_local_port(ple->nt_request_wait_reply_port);
    }
    if (ple->nt_reply_port) {
        printf(" nt_reply_port ");
        pprint_local_port(ple->nt_reply_port);
    }
    if (ple->nt_reply_wait_reply_port) {
        printf(" nt_reply_wait_reply_port ");
        pprint_local_port(ple->nt_reply_wait_reply_port);
    }
    if (ple->nt_reply_wait_receive_port) {
        printf(" nt_reply_wait_receive_port ");
        pprint_local_port(ple->nt_reply_wait_receive_port);
    }
    if (ple->nt_impersonate_client_of_port) {
        printf(" nt_impersonate_client_of_port ");
        pprint_local_port(ple->nt_impersonate_client_of_port);
    }
    if (ple->nt_read_virtual_memory) {
        printf(" nt_read_virtual_memory ");
        pprint_panda_vm(ple->nt_read_virtual_memory);
    }
    if (ple->nt_write_virtual_memory) {
        printf(" nt_write_virtual_memory ");
        pprint_panda_vm(ple->nt_write_virtual_memory);
    }
    if (ple->has_nt_any_syscall) {
        printf (" nt_any_syscall (num=%d)", ple->nt_any_syscall);
    }
    if (ple->has_total_instr) {
        printf (" total instr %" PRId64, ple->total_instr);
    }

    printf ("\n");
}
Exemplo n.º 10
0
void MainWindow::on_actionLaden_triggered()
{
    LoadDB();
}
Exemplo n.º 11
0
void MainWindow::on_cancel_clicked()
{
    LoadDB();
}
Exemplo n.º 12
0
int main (int argc, char **argv) {
    
    str2ind = LoadDB(std::string("/tmp/lavadb"));
    ind2str = InvertDB(str2ind);
    
    pandalog_open(argv[1], "r");
    Panda__LogEntry *ple;
    while (1) {
        ple = pandalog_read_entry();
        if (ple == NULL) {
            break;
        }
        if (ple->instr == -1) {
            printf ("[after replay end] : ");
        } 
        else {
            printf ("instr=%" PRIu64 " pc=0x%" PRIx64 " :", ple->instr, ple->pc);
        }

        // from asidstory / osi
        if (ple->has_asid) {
            printf (" asid=%" PRIx64, ple->asid);
        }

        if (ple->has_process_id != 0) {
            printf (" pid=%d", ple->process_id);
        }
        if (ple->process_name != 0) {
            printf (" process=[%s]", ple->process_name);
        }

        // from file_taint
        if (ple->has_taint_label_number) {
            printf (" tl=%d", ple->taint_label_number);
        }
        if (ple->has_taint_label_virtual_addr) {
            printf (" va=0x%" PRIx64, ple->taint_label_virtual_addr);
        }
        if (ple->has_taint_label_physical_addr) {
            printf (" pa=0x%" PRIx64 , ple->taint_label_physical_addr);
        }

        if (ple->n_callstack > 0) {
            printf (" callstack=(%u,[", (uint32_t) ple->n_callstack);
            uint32_t i;
            for (i=0; i<ple->n_callstack; i++) {
                printf (" 0x%" PRIx64 , ple->callstack[i]);
                if (i+1 < ple->n_callstack) {
                    printf (",");
                }
            }
            printf ("])");
        }

        if (ple->attack_point) {
            Panda__AttackPoint *ap = ple->attack_point;
            printf (" attack point: info=[%u][%s]", ap->info, gstr(ap->info));
        }

        if (ple->src_info) {
            Panda__SrcInfo *si = ple->src_info;
            printf (" src info filename=[%u][%s] astnode=[%u][%s] linenum=%d",
                    si->filename, gstr(si->filename), si->astnodename, 
                    gstr(si->astnodename), si->linenum);
        }

        if (ple->has_tainted_branch && ple->tainted_branch) {
            printf (" tainted branch");
        }
        if (ple->taint_query_hypercall) {
            Panda__TaintQueryHypercall *tqh = ple->taint_query_hypercall;
            printf (" taint query hypercall(buf=0x%" PRIx64 ",len=%u,num_tainted=%u)", tqh->buf, tqh->len, tqh->num_tainted);
        }
        if (ple->has_tainted_instr && ple->tainted_instr) {
            printf (" tainted instr");
        }

        // dead data
        if (ple->n_dead_data > 0) {
            printf ("\n");
            uint32_t i;
            for (i=0; i<ple->n_dead_data; i++) {
                printf (" dead_data(label=%d,deadness=%.2f\n", i, ple->dead_data[i]);
            }
        }

        // taint queries
        if (ple->taint_query_unique_label_set) {
            printf (" taint query unqiue label set: ptr=%" PRIx64" labels: ", ple->taint_query_unique_label_set->ptr);
            uint32_t i;
            for (i=0; i<ple->taint_query_unique_label_set->n_label; i++) {
                printf ("%d ", ple->taint_query_unique_label_set->label[i]);
            }
        }
        
        if (ple->taint_query) {
            Panda__TaintQuery *tq = ple->taint_query;
            printf (" taint query: labels ptr %" PRIx64" tcn=%d off=%d", tq->ptr, (int) tq->tcn, (int) tq->offset);
        }

        // win7proc
        if (ple->new_pid) { 
            printf (" new_pid ");
            print_process(ple->new_pid);
        }
        if (ple->nt_create_user_process) {
            printf (" nt_create_user_process ");
            printf (" [ cur " ); 
            print_process(ple->nt_create_user_process->cur_p); 
            printf (" ]");
            printf (" [ new " ); 
            print_process(ple->nt_create_user_process->new_p); 
            printf (" ]");
            printf (" name=[%s] ", 
                    ple->nt_create_user_process->new_long_name);
        }
        if (ple->nt_terminate_process) {
            printf (" nt_terminate_process ");
            printf (" [ cur " ); 
            print_process(ple->nt_terminate_process->cur_p);
            printf (" ]");
            printf (" [ term " ); 
            print_process(ple->nt_terminate_process->term_p);
            printf (" ]");
        }

        if (ple->nt_create_file) {
            printf (" nt_create_file ");
            print_process_file(ple->nt_create_file);
        }

        if (ple->nt_read_file) {
            printf (" nt_read_file ");
            print_process_file(ple->nt_read_file);
        }
        if (ple->nt_delete_file) {
            printf (" nt_delete_file ");
            print_process_file(ple->nt_delete_file);
        }
        if (ple->nt_write_file) {
            printf ("nt_write_file ");
            print_process_file(ple->nt_write_file);
        }
        if (ple->nt_create_key) {
            printf (" nt_create_key ");
            print_process_key(ple->nt_create_key);
        }
        if (ple->nt_create_key_transacted) {
            printf (" nt_create_key_transacted ");
            print_process_key(ple->nt_create_key_transacted);
        }
        if (ple->nt_open_key) {
            printf (" nt_open_key ");
            print_process_key(ple->nt_open_key);
        }
        if (ple->nt_open_key_ex) {
            printf (" nt_open_key_ex ");
            print_process_key(ple->nt_open_key_ex);
        }
        if (ple->nt_open_key_transacted) {
            printf (" nt_open_key_transacted ");
            print_process_key(ple->nt_open_key_transacted);
        }
        if (ple->nt_open_key_transacted_ex) {
            printf (" nt_open_key_transacted_ex ");
            print_process_key(ple->nt_open_key_transacted_ex);
        }
        if (ple->nt_delete_key) {
            printf (" nt_delete_key ");
            print_process_key(ple->nt_delete_key);
        }
        if (ple->nt_query_key) {
            printf (" nt_query_key ");
            print_process_key(ple->nt_query_key);
        }
        if (ple->nt_query_value_key) {
            printf (" nt_query_value_key ");
            print_process_key_value(ple->nt_query_value_key);
        }
        if (ple->nt_delete_value_key) {
            printf (" nt_delete_value_key ");
            print_process_key_value(ple->nt_delete_value_key);
        }
        if (ple->nt_set_value_key) {
            printf (" nt_set_value_key ");
            print_process_key_value(ple->nt_set_value_key);
        }
        if (ple->nt_enumerate_key) {
            printf (" nt_enumerate_key ");
            print_process_key_index(ple->nt_enumerate_key);
        }
        if (ple->nt_enumerate_value_key) {
            printf (" nt_enumerate_value_key ");
            print_process_key_index(ple->nt_enumerate_value_key);
        }

        printf ("\n");
        panda__log_entry__free_unpacked(ple, NULL);
    }
}