LibreNMS uses continuous integration to test code changes to help reduce bugs. This also helps guarantee the changes you
contribute won't be broken in the future.
You can find out more in our [Validating Code Documentation](Validating-Code.md)
### Polling debug output
You can see detailed info by running your polling code in debug mode. If you are looking at a specific
```bash
./discovery.php -d -h HOSTNAME
./poller.php -d -h HOSTNAME
```
### Inspecting variables
Sometimes you want to find out what a variable contains (such as the data return from an snmpwalk).
You can dump one or more variables and halt execution with the dd() function.
```php
dd($variable1, $variable2);
```
### Inspecting web pages
Installing the development dependencies and setting APP_DEBUG enables the [Laravel Debugbar](https://github.com/barryvdh/laravel-debugbar)
This will allow you to inspect page generation and errors right in your web browser.
### Better code completion in IDEs and editors
You can generate some files to improve code completion.
(These file are not updated automatically, so you may need to re-run these command periodically)
```bash
./lnms ide-helper:generate
./lnms ide-helper:models -N
```
### Emulating devices
You can capture and emulate devices using [Snmpsim](https://github.com/etingof/snmpsim). LibreNMS has a set of scripts to make it easier to work with snmprec files.