Comment faire pour imprimer exactement la valeur du compteur de programme en C

Je veux écrire un programme C qui affiche le contenu du compteur de programme PC. Cela peut être fait à partir de l'espace utilisateur, ou d'assemblage, ou de certaines routines du noyau sont utilisés?

  • Débogueur de code de contrôle de l'accès au PC devraient donc être une façon, je pense que l'utilisation d'assembly en ligne.
  • Pensez-vous qu'il pourrait être un GCC extension pour le compteur de programme?
  • Oui je ne suis pas très sûr mais je pense qu'il devrait y avoir un moyen de contourner ce remarque: si un code vous avez un lable: vous pouvez ensuite imprimer son adresse à l'aide de &lable (ce qui me fait dire que oui). Très à l'arrière de code (légitime) l'utilisation de ce type d'instructions, mais utilise fréquemment dans les logiciels malveillants de code de sorte que son une bonne Fonctionnalité.
  • Ce lien peut être de l'aide? stackoverflow.com/questions/599968/...
  • Vous n'avez pas spécifié de quel PC de la valeur que vous souhaitez imprimer. Celui qui est juste avant l'appel à la fonction d'impression..?
  • Pourquoi essayez-vous de le faire? Est-ce juste pour l'expérimentation ou êtes-vous en train d'essayer de faire quelque chose avec ça. Parce que sachant que le PC est quasi jamais quelque chose vous tenez à le savoir. Si il y a quelque chose que vous essayez de faire, il y a sans doute une meilleure façon de le faire. Surtout depuis l'ajout d'une instruction va changer l'offset pour les PC de toute façon.
  • En réponse à votre question si: C permet d'accéder directement à l'adresse d'une fonction ou d'une étiquette. Débogueurs l'habitude de prendre une exception si ils ont le PC de l'exception. Dans les BRAS de PC est un registre et une instruction mov tout fonctionne. Méfiez-vous de Pouce mode. Il ya une couple de trucs cool sur cette page: stackoverflow.com/questions/4062403/... . Fondamentalement, saut à un sous-programme qui copie l'adresse de retour qui devrait fonctionner dans presque chaque architecture. LEA instruction peut être utilisé dans les architectures x86.

InformationsquelleAutor manav m-n | 2013-08-21