What is a canonical address?
In canonical address, the bits 48-63 are all equal to the 47-th bit. The virtual address has only 48 significant bits, the other bits should all be either set or cleared.
An attempt to use a non-canonical address results in a hardware exception, that
is handled by OS, usually by killing the process. You will see an error message
Bus error
.