Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826

    [c++]lib statiche e debug

    ciao.
    Vorrei fare il debug di progetto in vs 2012 che utilizza due librerie statiche che ho creato a parte.
    Nella stessa soluzione ho quindi tre progetti:
    le .lib in due progetti e il progetto da debuggare che include i .h delle .lib.
    le .lib sono incluse nel progetto di cui voglio fare il debug.
    non vedo generati i .pdb servono?
    IL problema è che se faccio questo non mi visualizza il contenuto delle variabili quando passo col debug sul codice.
    grazie.

  2. #2
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826
    l debug va ma si comporta in un modo strano :
    uso le qt e ho queste due righe:

    codice:
    m_pRenderer = new CRenderer(0,960,540,0);    
    m_pRenderer->set(5);
    quando col debug vado all interno del m_pRenderer con m_pRenderer->set(5); la variabile

    codice:
    void CRenderer::set(int n)
    {
       cout << n;
    }
    n ha un valore del tipo 354523(casuale?) nelle watch o se ci vado sopra,mentre ho provato col cout ed effettivamente viene 5 stampato nella console.
    cosa puo essere che non mi fa vedere la variabile col valore corretto?
    uso delle static lib con il code generation a

    Multi-threaded Debug (/MTd)

    sia nelle librerie che nell'applicazione,

    forse è un problema di vs 2012 o delle qt?
    includo le lib delle qt , ma non so che tipo di generazione di codice hanno , probabilmente dato che sono dll usano

    Multi-threaded Debug DLL (/MDd)

    è forse li il casino?

    grazie.

  3. #3
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,461
    Ma il breakpoint è sulla linea della cout ?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826
    Quote Originariamente inviata da oregon Visualizza il messaggio
    Ma il breakpoint è sulla linea della cout ?
    si Oregon

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,461
    Ho provato e in questo caso n vale 5

    Mostra l'equivalente assembly del codice corrispondente alla parte del metodo set a partire dalla cout
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  6. #6
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826
    Quote Originariamente inviata da oregon Visualizza il messaggio
    Ho provato e in questo caso n vale 5

    Mostra l'equivalente assembly del codice corrispondente alla parte del metodo set a partire dalla cout
    scusa la mia ignoranza Oregon , uso vs 2012 ma non so come fare a postarti l'assembly, dove si vede? me lo puoi spiegare?
    te ne sarei grato.
    ciao.

  7. #7
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826
    Quote Originariamente inviata da giuseppe500 Visualizza il messaggio
    scusa la mia ignoranza Oregon , uso vs 2012 ma non so come fare a postarti l'assembly, dove si vede? me lo puoi spiegare?
    te ne sarei grato.
    ciao.
    questo puo essere utile?
    codice:
    --- No source file -------------------------------------------------------------
    000000013FD992E6  int         3  
    000000013FD992E7  int         3  
    000000013FD992E8  int         3  
    000000013FD992E9  int         3  
    000000013FD992EA  int         3  
    000000013FD992EB  int         3  
    000000013FD992EC  int         3  
    000000013FD992ED  int         3  
    000000013FD992EE  int         3  
    000000013FD992EF  int         3  
    --- c:\program files (x86)\microsoft visual studio 11.0\vc\include\xmemory0 ----
            return (_STD addressof(_Val));
    000000013FD992F0  mov         rax,rcx  
            }
    000000013FD992F3  ret  
    --- No source file -------------------------------------------------------------
    000000013FD992F4  int         3  
    000000013FD992F5  int         3  
    000000013FD992F6  int         3  
    000000013FD992F7  int         3  
    000000013FD992F8  int         3  
    000000013FD992F9  int         3  
    000000013FD992FA  int         3  
    000000013FD992FB  int         3  
    000000013FD992FC  int         3  
    000000013FD992FD  int         3  
    000000013FD992FE  int         3  
    000000013FD992FF  int         3  
    --- c:\open4\open4\graphics2\renderer.cpp --------------------------------------
    
        }
    000000013FD99300  ret         0  
    --- No source file -------------------------------------------------------------
    000000013FD99303  int         3  
    000000013FD99304  int         3  
    000000013FD99305  int         3  
    000000013FD99306  int         3  
    000000013FD99307  int         3  
    000000013FD99308  int         3  
    000000013FD99309  int         3  
    000000013FD9930A  int         3  
    000000013FD9930B  int         3  
    000000013FD9930C  int         3  
    000000013FD9930D  int         3  
    000000013FD9930E  int         3  
    000000013FD9930F  int         3  
    --- c:\open4\open4\graphics2\renderer.cpp --------------------------------------
            cout << n;
    000000013FD99310  lea         rcx,[std::cout (013FEE86F0h)]  
    000000013FD99317  jmp         std::basic_ostream<char,std::char_traits<char> >::operator<< (013FD71A0Ah)  
    --- No source file -------------------------------------------------------------
    000000013FD9931C  int         3  
    000000013FD9931D  int         3  
    000000013FD9931E  int         3  
    000000013FD9931F  int         3  
    --- c:\open4\open4\graphics2\renderer.cpp --------------------------------------
        
        void CRenderer::setCameraPar(int left, int top, int width , int height)
        {
    000000013FD99320  movd        xmm1,dword ptr [height]  
    000000013FD99326  movd        xmm0,r9d  
            m_fRight = width;
            m_fBottom = height;
    000000013FD9932B  cvtdq2ps    xmm1,xmm1  
    000000013FD9932E  cvtdq2ps    xmm0,xmm0  
    000000013FD99331  movss       dword ptr [rcx+1CCh],xmm1  
    000000013FD99339  movss       dword ptr [rcx+1C8h],xmm0  
        }
    000000013FD99341  ret  
    --- No source file -------------------------------------------------------------
    000000013FD99342  int         3  
    000000013FD99343  int         3  
    000000013FD99344  int         3  
    000000013FD99345  int         3  
    000000013FD99346  int         3  
    000000013FD99347  int         3  
    000000013FD99348  int         3  
    000000013FD99349  int         3  
    000000013FD9934A  int         3  
    000000013FD9934B  int         3  
    000000013FD9934C  int         3  
    000000013FD9934D  int         3  
    000000013FD9934E  int         3  
    000000013FD9934F  int         3  
    --- c:\open4\open4\graphics2\renderer.cpp --------------------------------------
            m_pEffect = pEff;
    000000013FD99350  mov         qword ptr [rcx+0E0h],rdx  
        }
    000000013FD99357  ret
    grazie.

    ps.Uso le qt 5.1 puo essere causa di errore nel debug? perchè le qt usano delle dll e io ho compilato tutto come libreria statica e includo le qt con dll e lib nel modo microsoft per le dll (dll_export ecc..).
    grazie.
    Ultima modifica di giuseppe500; 06-01-2014 a 19:56

  8. #8
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826
    dependency walker mi dice che mancano questi files , c'è percaso da installare il win sdk 8 ?
    ho letto che si puo installare in win 7.

    API-MS-WIN-APPMODEL-RUNTIME-L1-1-0.DLL

    API-MS-WIN-CORE-WINRT-ERROR-L1-1-0.DLL
    API-MS-WIN-CORE-WINRT-L1-1-0.DLL
    API-MS-WIN-CORE-WINRT-ROBUFFER-L1-1-0.DLL
    API-MS-WIN-CORE-WINRT-STRING-L1-1-0.DLL
    API-MS-WIN-SHCORE-SCALING-L1-1-1.DLL
    DCOMP.DLL
    IESHIMS.DLL

    grazie.

  9. #9
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826
    ciao.
    ho provato a mettere la dll da includere in un programma di test e il comportamento è lo stesso , poi ho settato la dll come delayload e tutto si è messo a funzionare perfettamente(nel progetto di prova).
    ho provato a fare lo stesso nel mio progetto solo che mi da quest errore:
    codice:
    LINK : fatal error LNK1194: cannot delay-load 'GraphicsD.dll' due to import of data symbol '"__declspec(dllimport) const OPEN::CColumn::`vftable'" (__imp_??_7CColumn@OPEN@@6B@)'; link without /DELAYLOAD:GraphicsD.dll
    e non capisco perchè!è relativo a column.h qui sotto; ma cosa vuol dire?

    codice:
    #pragma once
    #include "Mesh.hpp"
    #include "Shape.hpp"
    #include "Entity.h"
    #include <QtGui\qopenglfunctions_3_3_compatibility.h>
    #include "GraphicsLibs.h"
    namespace OPEN{
    
    
        class GRAPHICS_ITEM CColumn : public CEntity
        { 
        public:
            CMesh<CEffect>* m_pMeshNormal;
            CMesh<CEffect>* m_pRay;
            CEffect* m_pEff;
            CColumn(){func.initializeOpenGLFunctions();};
            CColumn(CEffect* pEff){
                m_pEff = pEff;
                m_pRay = NULL;
                m_bIsSelected = false;
            }
            bool IntersectRay(const glm::vec3& v0, const glm::vec3& v1);
            ~CColumn(){};
            void Init();
            void DrawGl();
            void SetDirectionVector(const glm::vec3& vDir);
            CTransform GetTransform();
            
        private:
            QOpenGLFunctions_3_3_Compatibility func;
            CTransform m_transform;
            glm::vec3 m_directionV;
            bool m_bIsSelected;
        };
    }
    grazie.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.