Print printf argument if it is just an INT

................> pd 50 @ main 
...
            0x5585e1d801f1 00:0000      mov   edx, dword [rbp - 0x2c]
            0x5585e1d801f4 00:0000      mov   eax, dword [rbp - 0x30]
            0x5585e1d801f7 00:0000      mov   esi, eax
            0x5585e1d801f9 00:0000 b    lea   rax, str.The_first_area_is__d__the_2nd__d. ; 0x5585e1d81070 ; "The first area is %d, the 2nd %d.\n"
            0x5585e1d80200 00:0000      mov   rdi, rax
            0x5585e1d80203 00:0000      mov   eax, 0
            0x5585e1d80208 00:0000      call  sym.imp.printf
...


[0x7f8399f08730]> db @ 0x5585e1d801f1
[0x7f8399f08730]> dc
[+] SIGNAL 28 errno=0 addr=0x00000000 code=128 si_pid=0 ret=0
[0x7f8399f08730]> dc
The size of an int: 4
The size of areas (int[]): 20
The number of ints in areas: 5
hit breakpoint at: 0x5585e1d801f1
[0x5585e1d801f1]> pd 2
            ;-- rip:
            0x5585e1d801f1 00:0000 b    mov   edx, dword [rbp - 0x2c]
            0x5585e1d801f4 00:0000      mov   eax, dword [rbp - 0x30]
[0x5585e1d801f1]> ds
[0x5585e1d801f1]> pfb  @ edx
0x0000000c = 0xff
[0x5585e1d801f1]> pfb  @ [rbp-0x2c]
0xd0000000c = 0xff
[0x5585e1d801f1]>

$ qalc 0xc
12 = 12

Sidenote: gdb shows that it cannot read memory, radare2 implicitly maps it to 0xff

gef➤  x/s $edx
0xc:    <error: Cannot access memory at address 0xc>
gef➤  x/x $edx
0xc:    Cannot access memory at address 0xc
gef➤  print $edx
$1 = 0xc