# debug_backtrace

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

debug_backtrace — Génère le contexte de débogage

### Description

debug_backtrace(int `$options` = `DEBUG_BACKTRACE_PROVIDE_OBJECT`, int `$limit` = 0): array

debug_backtrace() génère un contexte de débogage PHP.

### Liste de paramètres

`options`

  Ce paramètre est un masque d'options suivantes :

  Options pour la fonction debug_backtrace()
  DEBUG_BACKTRACE_PROVIDE_OBJECT | Si l'on doit ou non peupler l'index "object".
  DEBUG_BACKTRACE_IGNORE_ARGS | Si l'on doit ou non omettre l'index "args" et donc tous les arguments de la fonction/méthode pour économiser de la mémoire.

  > Note:

  > Il existe quatre combinaisons possibles :

  > Options de debug_backtrace()
  > `debug_backtrace()` | Alimente les deux index
  > `debug_backtrace(DEBUG_BACKTRACE_PROVIDE_OBJECT)`
  > `debug_backtrace(1)`
  > `debug_backtrace(0)` | Omet l'index `"object"` et remplit l'index `"args"`.
  > `debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS)` | Omet l'index `"object"` et l'index `"args"`.
  > `debug_backtrace(2)`
  > `debug_backtrace(DEBUG_BACKTRACE_PROVIDE_OBJECT|DEBUG_BACKTRACE_IGNORE_ARGS)` | Remplit l'index `"object"` et omet l'index `"args"`.
  > `debug_backtrace(3)`

`limit`

  Ce paramètre peut être utilisé pour limiter le nombre de trames dans la pile retournée. Par défaut (`limit`=`0`), la fonction retourne toutes les trames de la pile.

### Valeurs de retour

Retourne un tableau de tableaux associatifs. Les éléments de retour possibles sont les suivants :

Éléments possibles de retour de la fonction debug_backtrace()
Nom | Type | Description
--- | --- | ---
function | chaîne de caractères | Le nom de la fonction courante. Voir aussi __FUNCTION__.
line | entier | Le numéro de la ligne courante. Voir aussi __LINE__.
file | chaîne de caractères | Le nom du fichier courant. Voir aussi __FILE__.
class | chaîne de caractères | Le nom de la classe courante. Voir aussi __CLASS__.
object | objet | L'objet courant.
type | chaîne de caractères | Le type de classe courante. Si une méthode est appelée, "->" est retourné. Si une méthode statique est appelée, "::" est retourné. Si une fonction est appelée, rien ne sera retourné.
args | tableau | Si à l'intérieur d'une fonction, ceci liste des arguments. Si dans un fichier inclus, ceci liste des fichiers inclus.

### Exemples

Exemple #1 Exemple avec debug_backtrace()

`<?php
// filename: /tmp/a.php
function a_test($str)
{
echo "\nHi: $str";
var_dump(debug_backtrace());
}
a_test('friend');
?>
<?php
// filename: /tmp/b.php
include_once '/tmp/a.php';
?>`

Résultat de l'exécution de /tmp/b.php :

    Hi: friend
    array(2) {
      [0]=>
        array(4) {
          ["file"] => string(10) "/tmp/a.php"
          ["line"] => int(10)
          ["function"] => string(6) "a_test"
          ["args"]=>
            array(1) {
              [0] => &string(6) "friend"
            }
        }
      [1]=>
        array(4) {
          ["file"] => string(10) "/tmp/b.php"
          ["line"] => int(2)
          ["args"] =>
            array(1) {
              [0] => string(10) "/tmp/a.php"
            }
          ["function"] => string(12) "include_once"
        }
    }

### Voir aussi

- trigger_error() - Déclenche une erreur utilisateur
- debug_print_backtrace() - Affiche la pile d'exécution PHP