pwndbg/gdbinit.py

37 lines
1.0 KiB
Python

#!/usr/bin/env python
# -*- coding: utf-8 -*-
from __future__ import print_function
from __future__ import unicode_literals
import locale
import sys
from os import path
import six
directory, file = path.split(__file__)
directory = path.expanduser(directory)
directory = path.abspath(directory)
sys.path.append(directory)
# this is an unconventional workaround to
# support unicode printing for python2
# https://github.com/pwndbg/pwndbg/issues/117
# on python3 it warns if the user has different
# encoding than utf-8
encoding = locale.getpreferredencoding()
if six.PY2:
reload(sys)
sys.setdefaultencoding('utf-8')
elif encoding != 'UTF-8':
print('******')
print('Your encoding ({}) is different than UTF-8. pwndbg might not work properly.'.format(encoding))
print('You might try launching gdb with:')
print(' LC_ALL=en_US.UTF-8 PYTHONIOENCODING=UTF-8 gdb')
print('Make sure that en_US.UTF-8 is activated in /etc/locale.gen and you called locale-gen')
print('******')
import pwndbg # isort:skip