Errori, bug, domande - pagina 2705

 
fxsaber:

Potete dirmi come trovare il posto nella fonte da cui è stato fatto l'include corrispondente?

A quanto pare, finora solo mezzi di terze parti o fatti in casa. Per esempio, puoi usare il mio programma parker o l'articolo sull'analisi MQL. I dati sono raccolti lì e devono essere stampati in un registro o da qualche altra parte. Ma le definizioni non sono gestite lì.

Altri analizzatori a colpo d'occhio sono lint, doxygen.

MQL5 Program Packer
MQL5 Program Packer
  • www.mql5.com
This script allows you to assemble a zip-file of your MQL5-program with all dependencies automatically. The dependencies are: included source files via #include directive (both modes of absolute () and relative ("") references are supported); icons linked by #property icon directive; resources (images, sounds, and other types) embedded by...
 
Proposta agli sviluppatori.
Aggiungere la ricerca/sostituzione per progetto corrente a ME, perché durante il refactoring passare attraverso ogni file e cercare le occorrenze non è in qualche modo buono.
 
Sergey Dzyublik:

Solo a mano.
Puoi suggerire agli sviluppatori di riempire le colonne vuote File, Line, Column con informazioni rilevanti sul file sorgente da cui è stato fatto l'include.

Attraverso il menu PKM vorrei.


Stanislav Korotky:

Apparentemente solo strumenti di terze parti o fatti in casa per ora. Per esempio, prendete il mio programma Parker o un articolo sull'analisi MQL. I dati sono raccolti lì e avete solo bisogno di emetterli in un registro o da qualche altra parte. Ma le definizioni non sono gestite lì.

Altri analizzatori che mi vengono in mente sono lint, doxygen.

So di una tale possibilità grazie al vostro grande strumento. Sfortunatamente, non sempre riesco a trovare una include-stringa necessaria, perché uno stesso mqh può presentarsi più volte. E avete bisogno della sua prima inclusione durante la costruzione.

 

Bug ME(build 2380) funzionalità Sostituisci (Strl + H) non funziona per abilitato "Solo testo selezionato" insieme a "Cerca su" quando la sezione dell'applicazione richiesta è evidenziata e non l'intero codice.
Sequenza di azioni da riprodurre:

void Increment(int &n){
   ++n;
};

void test(){
   int n = 0;
   for(int i = 0; i < 100; ++i){
      DebugBreak();
      Increment(n);
   }  
}

void OnStart(){
   test();
}


1. Inserire il codice, selezionare la sezione data con il mouse, aprire Replace (Ctrl + H)
2. attivare "Solo testo selezionato" e "Cerca su".
3. Per inserire "test", sostituire con "best", applicare "Replace All".
Risultato: non è stato trovato nulla.
Risultato atteso: sostituire "test" con "best".


File:
 
Questa è la seconda volta che ho incontrato un problema in ME- uno dei thread sta caricando il processore al 100%.
Allo stesso tempo tutto funziona correttamente in ME.
Se chiudo ME, il processo continua a bloccarsi e a caricare il processore, devo ucciderlo manualmente.
Forse c'è qualche condizione di gara tra la compilazione in background e quella manuale per un progetto di medie dimensioni (3 secondi su Intel 7700-HQ)...
 
fxsaber:

Sono consapevole di questa possibilità grazie al vostro meraviglioso strumento. Sfortunatamente, non è sempre possibile trovare la giusta stringa include, poiché lo stesso mqh può essere presente più volte. E abbiamo bisogno della sua prima inclusione durante la costruzione.

È la prima inclusione che viene rilevata. L'ordine di attraversamento dei file sarà lo stesso della compilazione, a meno che la compilazione condizionale non interferisca - per le macro è necessario modificarlo.

Di solito faccio proprio questo - rinominare il file mqh giusto e indicherà dove si trova l'intoppo quando si cerca di compilare.

 
Stanislav Korotky:

Di solito faccio una cosa semplice - rinominare il file mqh giusto e mi dirà dove si trova l'intoppo quando provo a compilare.

Grazie per il metodo! Allora l'algoritmo è il seguente: vado al sorgente mqh con ENTER, premo ALT+N, lo rinomino, premo F7.

 
Bug ME (build 2380) la descrizione dell'errore di compilazione non rientra nel limite di 256 caratteri e viene troncata, con il risultato che non c'è modo di capire per quale tipo di dati si verifica l'errore, poiché la parte richiesta è stata troncata.


Un suggerimento agli sviluppatori è quello di considerare di aumentare il limite ad almeno 512 caratteri, o di registrare su un file, o di fornire dettagli in una finestra separata.
 
Sergey Dzyublik:
Bug ME (build 2380) la descrizione dell'errore di compilazione non rientra nel limite di 256 caratteri e viene troncata, con il risultato che non c'è modo di capire per quale tipo di dati si verifica l'errore, poiché la parte richiesta è stata troncata.


Un suggerimento agli sviluppatori è quello di considerare di aumentare il limite ad almeno 512 caratteri, o di registrare su un file, o di fornire dettagli in una finestra separata.
Se guardi i log con PKM --> View, è troncato anche lì?
 
Artyom Trishkin:
Se il log viene visualizzato tramite PCM --> View, è anche lì ritagliato?

Questo è il problema, non c'è un registro per la scheda Errori in ME.