OVH Cloud OVH Cloud

Marqueur dans un executable ?

8 réponses
Avatar
Angelo
Est-il possible en C# de créer des "markeurs", c'est à dire de marquer une
position exact dans le source, une fois compilé, d'avoir la même position
dans l'executable ?

Merci de votre aide ...

Noter : Les const et autre string, ne fonctionne pas, ils sont déplacer au
moment de la compilation.

8 réponses

Avatar
Paul Bacelar
Quel est votre but final?

Si c'est pour du debugging, la stacktrace fait merveille.
--
Paul Bacelar


"Angelo" wrote in message
news:#
Est-il possible en C# de créer des "markeurs", c'est à dire de marquer une
position exact dans le source, une fois compilé, d'avoir la même position
dans l'executable ?

Merci de votre aide ...

Noter : Les const et autre string, ne fonctionne pas, ils sont déplacer au
moment de la compilation.




Avatar
Zoury
Salut Angelo!

je ne sais pour les marqueurs, mais pourquoi ne pas tout simplement
"envelopper" ce bout de code dans une fonction qui lui est propre ?

--
Cordialement
Yanick
MVP pour Visual Basic

"Paul Bacelar" a écrit dans le message
de news: %
Quel est votre but final?

Si c'est pour du debugging, la stacktrace fait merveille.
--
Paul Bacelar


"Angelo" wrote in message
news:#
Est-il possible en C# de créer des "markeurs", c'est à dire de marquer




une
position exact dans le source, une fois compilé, d'avoir la même position
dans l'executable ?

Merci de votre aide ...

Noter : Les const et autre string, ne fonctionne pas, ils sont déplacer




au
moment de la compilation.








Avatar
Paul Bacelar
Je crois que vous avez une vue candide de la compilation.

Un bloc de code ne fait pas partie forcement de l'exécutable finale, il peut
être dupliqué, être découpé en petits bouts et chaque bout mélangé avec
d'autre bouts d'autres blocs.

Je me répète quel votre but finale car lecture de l'exécutable, cela ne veux
rien dire de bien précis.

A la limite, mettez votre bloc dans une fonction et n'importe quel outil
comme ildasm pourront vous donner le MSIL correspondant.
--
Paul Bacelar


"Angelo" wrote in message
news:#
Le but rechercher marquer un blocs de code dans le source (type bloc1_begin,
bloc1_end par exemple, le pouvoir avoir la position exact depuis la lecture
d'un executable.

"Paul Bacelar" a écrit dans le message
de news: %
Quel est votre but final?

Si c'est pour du debugging, la stacktrace fait merveille.
--
Paul Bacelar


"Angelo" wrote in message
news:#
Est-il possible en C# de créer des "markeurs", c'est à dire de marquer




une
position exact dans le source, une fois compilé, d'avoir la même position
dans l'executable ?

Merci de votre aide ...

Noter : Les const et autre string, ne fonctionne pas, ils sont déplacer




au
moment de la compilation.








Avatar
Angelo
Paul,

Alors je vais essayer d'être plus précis, je voudrais faire ca :

Code ...
{ Marqueur Bloc1_Begin}
Code ...
Code...
Code...
{Marqueur Bloc1_End}
Code...
Code...
Code...

Après la compilation dans l'executable :

Binary Code ...
{Marqueur Bloc1_Begin}
Binary Code ...
Binary Code ...
Binary Code ...
{Marqueur Bloc1_End}
Binary Code ...
Binary Code ...

Pouvoir identifier ces marqueurs depuis une application externe.
Surtout avoir la même position que dans le source.

voilà le code que j'utilisais avant :

#define BlocMarks_Begin
__asm _emit 0x00
__asm _emit 0x01
__asm _emit 0x02
__asm _emit 0x03
__asm _emit 0x04
__asm _emit 0x05

#define BlockMarks_End
__asm _emit 0x00
__asm _emit 0x01
__asm _emit 0x02
__asm _emit 0x03
__asm _emit 0x04
__asm _emit 0x05

#endif




"Paul Bacelar" a écrit dans le message
de news:
Je crois que vous avez une vue candide de la compilation.

Un bloc de code ne fait pas partie forcement de l'exécutable finale, il
peut
être dupliqué, être découpé en petits bouts et chaque bout mélangé avec
d'autre bouts d'autres blocs.

Je me répète quel votre but finale car lecture de l'exécutable, cela ne
veux
rien dire de bien précis.

A la limite, mettez votre bloc dans une fonction et n'importe quel outil
comme ildasm pourront vous donner le MSIL correspondant.
--
Paul Bacelar


"Angelo" wrote in message
news:#
Le but rechercher marquer un blocs de code dans le source (type
bloc1_begin,
bloc1_end par exemple, le pouvoir avoir la position exact depuis la
lecture
d'un executable.

"Paul Bacelar" a écrit dans le message
de news: %
Quel est votre but final?

Si c'est pour du debugging, la stacktrace fait merveille.
--
Paul Bacelar


"Angelo" wrote in message
news:#
Est-il possible en C# de créer des "markeurs", c'est à dire de marquer




une
position exact dans le source, une fois compilé, d'avoir la même
position
dans l'executable ?

Merci de votre aide ...

Noter : Les const et autre string, ne fonctionne pas, ils sont déplacer




au
moment de la compilation.












Avatar
Paul Bacelar
On ne peut pas directement transposer votre méthode en .NET.

Pour pouvoir vous aider à arriver à votre but, il faut connaître votre but.

Le programme extérieur à quelle représentation du programme, la version sur
disk, la version en mémoire, avant ou après JIT.

En un mot, on comprend votre méthode mais on ne comprend pas pourquoi faire.

Est-ce pour générer du code après compilation, pour faire du débugging, pour
faire de l'instrumentation de code etc...

Pour chacune de ces finalités, il faut utiliser des méthodes différentes.

Donc ma question est toujours, quel est votre but final.
--
Paul Bacelar


"Angelo" wrote in message
news:
Paul,

Alors je vais essayer d'être plus précis, je voudrais faire ca :

Code ...
{ Marqueur Bloc1_Begin}
Code ...
Code...
Code...
{Marqueur Bloc1_End}
Code...
Code...
Code...

Après la compilation dans l'executable :

Binary Code ...
{Marqueur Bloc1_Begin}
Binary Code ...
Binary Code ...
Binary Code ...
{Marqueur Bloc1_End}
Binary Code ...
Binary Code ...

Pouvoir identifier ces marqueurs depuis une application externe.
Surtout avoir la même position que dans le source.

voilà le code que j'utilisais avant :

#define BlocMarks_Begin
__asm _emit 0x00
__asm _emit 0x01
__asm _emit 0x02
__asm _emit 0x03
__asm _emit 0x04
__asm _emit 0x05

#define BlockMarks_End
__asm _emit 0x00
__asm _emit 0x01
__asm _emit 0x02
__asm _emit 0x03
__asm _emit 0x04
__asm _emit 0x05

#endif




"Paul Bacelar" a écrit dans le message
de news:
> Je crois que vous avez une vue candide de la compilation.
>
> Un bloc de code ne fait pas partie forcement de l'exécutable finale, il
> peut
> être dupliqué, être découpé en petits bouts et chaque bout mélangé avec
> d'autre bouts d'autres blocs.
>
> Je me répète quel votre but finale car lecture de l'exécutable, cela ne
> veux
> rien dire de bien précis.
>
> A la limite, mettez votre bloc dans une fonction et n'importe quel outil
> comme ildasm pourront vous donner le MSIL correspondant.
> --
> Paul Bacelar
>
>
> "Angelo" wrote in message
> news:#
> Le but rechercher marquer un blocs de code dans le source (type
> bloc1_begin,
> bloc1_end par exemple, le pouvoir avoir la position exact depuis la
> lecture
> d'un executable.
>
> "Paul Bacelar" a écrit dans le


message
> de news: %
>> Quel est votre but final?
>>
>> Si c'est pour du debugging, la stacktrace fait merveille.
>> --
>> Paul Bacelar
>>
>>
>> "Angelo" wrote in message
>> news:#
>>> Est-il possible en C# de créer des "markeurs", c'est à dire de marquer
> une
>>> position exact dans le source, une fois compilé, d'avoir la même
>>> position
>>> dans l'executable ?
>>>
>>> Merci de votre aide ...
>>>
>>> Noter : Les const et autre string, ne fonctionne pas, ils sont


déplacer
> au
>>> moment de la compilation.
>>>
>>>
>>
>>
>
>




Avatar
Angelo
Le but serait d'extraire une partie du code, via ces marqueurs.

"Paul Bacelar" a écrit dans le message
de news:
On ne peut pas directement transposer votre méthode en .NET.

Pour pouvoir vous aider à arriver à votre but, il faut connaître votre
but.

Le programme extérieur à quelle représentation du programme, la version
sur
disk, la version en mémoire, avant ou après JIT.

En un mot, on comprend votre méthode mais on ne comprend pas pourquoi
faire.

Est-ce pour générer du code après compilation, pour faire du débugging,
pour
faire de l'instrumentation de code etc...

Pour chacune de ces finalités, il faut utiliser des méthodes différentes.

Donc ma question est toujours, quel est votre but final.
--
Paul Bacelar


"Angelo" wrote in message
news:
Paul,

Alors je vais essayer d'être plus précis, je voudrais faire ca :

Code ...
{ Marqueur Bloc1_Begin}
Code ...
Code...
Code...
{Marqueur Bloc1_End}
Code...
Code...
Code...

Après la compilation dans l'executable :

Binary Code ...
{Marqueur Bloc1_Begin}
Binary Code ...
Binary Code ...
Binary Code ...
{Marqueur Bloc1_End}
Binary Code ...
Binary Code ...

Pouvoir identifier ces marqueurs depuis une application externe.
Surtout avoir la même position que dans le source.

voilà le code que j'utilisais avant :

#define BlocMarks_Begin
__asm _emit 0x00
__asm _emit 0x01
__asm _emit 0x02
__asm _emit 0x03
__asm _emit 0x04
__asm _emit 0x05

#define BlockMarks_End
__asm _emit 0x00
__asm _emit 0x01
__asm _emit 0x02
__asm _emit 0x03
__asm _emit 0x04
__asm _emit 0x05

#endif




"Paul Bacelar" a écrit dans le
message
de news:
> Je crois que vous avez une vue candide de la compilation.
>
> Un bloc de code ne fait pas partie forcement de l'exécutable finale, il
> peut
> être dupliqué, être découpé en petits bouts et chaque bout mélangé avec
> d'autre bouts d'autres blocs.
>
> Je me répète quel votre but finale car lecture de l'exécutable, cela ne
> veux
> rien dire de bien précis.
>
> A la limite, mettez votre bloc dans une fonction et n'importe quel
> outil
> comme ildasm pourront vous donner le MSIL correspondant.
> --
> Paul Bacelar
>
>
> "Angelo" wrote in message
> news:#
> Le but rechercher marquer un blocs de code dans le source (type
> bloc1_begin,
> bloc1_end par exemple, le pouvoir avoir la position exact depuis la
> lecture
> d'un executable.
>
> "Paul Bacelar" a écrit dans le


message
> de news: %
>> Quel est votre but final?
>>
>> Si c'est pour du debugging, la stacktrace fait merveille.
>> --
>> Paul Bacelar
>>
>>
>> "Angelo" wrote in message
>> news:#
>>> Est-il possible en C# de créer des "markeurs", c'est à dire de
>>> marquer
> une
>>> position exact dans le source, une fois compilé, d'avoir la même
>>> position
>>> dans l'executable ?
>>>
>>> Merci de votre aide ...
>>>
>>> Noter : Les const et autre string, ne fonctionne pas, ils sont


déplacer
> au
>>> moment de la compilation.
>>>
>>>
>>
>>
>
>








Avatar
Tamahome
"Angelo" a écrit dans le message de
news:
Le but serait d'extraire une partie du code, via ces marqueurs.



Dans quel but ?
Avatar
Paul Bacelar
la class System.Reflection.Emit.ILGenerator peut-être?
--
Paul Bacelar

"Angelo" wrote in message
news:
Le but serait d'extraire une partie du code, via ces marqueurs.

"Paul Bacelar" a écrit dans le message
de news:
> On ne peut pas directement transposer votre méthode en .NET.
>
> Pour pouvoir vous aider à arriver à votre but, il faut connaître votre
> but.
>
> Le programme extérieur à quelle représentation du programme, la version
> sur
> disk, la version en mémoire, avant ou après JIT.
>
> En un mot, on comprend votre méthode mais on ne comprend pas pourquoi
> faire.
>
> Est-ce pour générer du code après compilation, pour faire du débugging,
> pour
> faire de l'instrumentation de code etc...
>
> Pour chacune de ces finalités, il faut utiliser des méthodes


différentes.
>
> Donc ma question est toujours, quel est votre but final.
> --
> Paul Bacelar
>
>
> "Angelo" wrote in message
> news:
>> Paul,
>>
>> Alors je vais essayer d'être plus précis, je voudrais faire ca :
>>
>> Code ...
>> { Marqueur Bloc1_Begin}
>> Code ...
>> Code...
>> Code...
>> {Marqueur Bloc1_End}
>> Code...
>> Code...
>> Code...
>>
>> Après la compilation dans l'executable :
>>
>> Binary Code ...
>> {Marqueur Bloc1_Begin}
>> Binary Code ...
>> Binary Code ...
>> Binary Code ...
>> {Marqueur Bloc1_End}
>> Binary Code ...
>> Binary Code ...
>>
>> Pouvoir identifier ces marqueurs depuis une application externe.
>> Surtout avoir la même position que dans le source.
>>
>> voilà le code que j'utilisais avant :
>>
>> #define BlocMarks_Begin
>> __asm _emit 0x00
>> __asm _emit 0x01
>> __asm _emit 0x02
>> __asm _emit 0x03
>> __asm _emit 0x04
>> __asm _emit 0x05
>>
>> #define BlockMarks_End
>> __asm _emit 0x00
>> __asm _emit 0x01
>> __asm _emit 0x02
>> __asm _emit 0x03
>> __asm _emit 0x04
>> __asm _emit 0x05
>>
>> #endif
>>
>>
>>
>>
>> "Paul Bacelar" a écrit dans le
>> message
>> de news:
>> > Je crois que vous avez une vue candide de la compilation.
>> >
>> > Un bloc de code ne fait pas partie forcement de l'exécutable finale,


il
>> > peut
>> > être dupliqué, être découpé en petits bouts et chaque bout mélangé


avec
>> > d'autre bouts d'autres blocs.
>> >
>> > Je me répète quel votre but finale car lecture de l'exécutable, cela


ne
>> > veux
>> > rien dire de bien précis.
>> >
>> > A la limite, mettez votre bloc dans une fonction et n'importe quel
>> > outil
>> > comme ildasm pourront vous donner le MSIL correspondant.
>> > --
>> > Paul Bacelar
>> >
>> >
>> > "Angelo" wrote in message
>> > news:#
>> > Le but rechercher marquer un blocs de code dans le source (type
>> > bloc1_begin,
>> > bloc1_end par exemple, le pouvoir avoir la position exact depuis la
>> > lecture
>> > d'un executable.
>> >
>> > "Paul Bacelar" a écrit dans le
> message
>> > de news: %
>> >> Quel est votre but final?
>> >>
>> >> Si c'est pour du debugging, la stacktrace fait merveille.
>> >> --
>> >> Paul Bacelar
>> >>
>> >>
>> >> "Angelo" wrote in message
>> >> news:#
>> >>> Est-il possible en C# de créer des "markeurs", c'est à dire de
>> >>> marquer
>> > une
>> >>> position exact dans le source, une fois compilé, d'avoir la même
>> >>> position
>> >>> dans l'executable ?
>> >>>
>> >>> Merci de votre aide ...
>> >>>
>> >>> Noter : Les const et autre string, ne fonctionne pas, ils sont
> déplacer
>> > au
>> >>> moment de la compilation.
>> >>>
>> >>>
>> >>
>> >>
>> >
>> >
>>
>>
>
>