shivm28[m] | Here, GDBserver asks for the specific core register list: http://repo.or.cz/openocd.git/blob/HEAD:/src/server/gdb_server.c#l1194 | 12:45 |
---|---|---|
shivm28[m] | I have followed a similar approach but without providing any register map: https://github.com/shivmgg/osd-sw/blob/86cef0fd98be352f7f34443b54ada3fd23c6432c/src/libosd/gdbserver.c#L391 | 12:48 |
shorne | shivm28[m]: yeah, I think you just need to undertsand the server working on the gdbserver to target interface | 18:01 |
---|
shivm28[m] | I went through the gdbserver in both qemu and openocd. IN QEMU, connection between gdb and gdbserver are implemented as: https://git.qemu.org/?p=qemu.git;a=blob;f=gdbstub.c#l1823 | 13:53 |
---|---|---|
shivm28[m] | 2. Regarding connections, gdbserver should first connect with GDB followed by the host controller in OSD or vice-versa. | 15:08 |
shivm28[m] | 3. For gdbserver implementation, I am trying to cover all the API to connect it with GDB, followed by read/write registers and memory and then complete RSP implementation. | 15:16 |
shivm28[m] | shorne: Hi, I tried using qemu from distro. But, I have qemu-system-or32 instead of qemu-system-or1k. So, couldn't follow the instructions. Finally, I went up building qemu from source following a bunch of links and resources. I was able to connect qemu gdbserver with gdb and also tried some commands. | 15:16 |
---|---|---|
shivm28[m] | Also, went through the implementation of gdbserver in qemu. | 15:23 |
shorne | I hope that gives you an idea of how the gdb->gdbserver connection is done | 19:48 |
shivm28[m] | shorne: Hi, I went through the implementation of gdbserver in openOCD. In openOCD, we can use GDB to program the board as well but that feature will be missing from the osd-gdb server, right? | 02:56 |
---|
<type 'exceptions.IOError'> | Python 2.7.6: /usr/bin/python Wed Sep 3 09:30:01 2025 |
A problem occurred in a Python script. Here is the sequence of function calls leading up to the error, in the order they occurred.
/usr/local/bin/irclogsearch in |
7 from irclog2html.irclogsearch import main |
8 |
9 if __name__ == '__main__': |
10 sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0]) |
=> 11 sys.exit(main()) |
sys = <module 'sys' (built-in)>, sys.exit = <built-in function exit>, main = <function main> |
/usr/local/lib/python2.7/dist-packages/irclog2html/irclogsearch.py in main() |
286 stream = unicode_stdout() |
287 print_cgi_headers(stream) |
=> 288 search_page(stream, form, logfile_path, logfile_pattern) |
289 |
290 |
global search_page = <function search_page>, stream = <_io.TextIOWrapper encoding='ascii'>, form = FieldStorage(None, None, [MiniFieldStorage('q', 'gdbserver')]), logfile_path = '/var/www/html/openrisc-irc/', logfile_pattern = '*.????-??-??.log' |
/usr/local/lib/python2.7/dist-packages/irclog2html/irclogsearch.py in search_page(stream=<_io.TextIOWrapper encoding='ascii'>, form=FieldStorage(None, None, [MiniFieldStorage('q', 'gdbserver')]), where='/var/www/html/openrisc-irc/', logfile_pattern='*.????-??-??.log') |
275 search_text = search_text.decode('UTF-8') |
276 print_search_results(search_text, stream=stream, where=where, |
=> 277 logfile_pattern=logfile_pattern) |
278 |
279 |
logfile_pattern = '*.????-??-??.log' |
/usr/local/lib/python2.7/dist-packages/irclog2html/irclogsearch.py in print_search_results(query=u'gdbserver', where='/var/www/html/openrisc-irc/', logfile_pattern='*.????-??-??.log', limit=100, stream=<_io.TextIOWrapper encoding='ascii'>) |
227 for result in search_irc_logs(query, stats=stats, where=where, |
228 logfile_pattern=logfile_pattern, |
=> 229 limit=limit): |
230 if date != result.date: |
231 if prev_result: |
limit = 100 |
/usr/local/lib/python2.7/dist-packages/irclog2html/irclogsearch.py in search_irc_logs(query=u'gdbserver', stats=<irclog2html.irclogsearch.SearchStats object>, where='/var/www/html/openrisc-irc/', logfile_pattern='*.????-??-??.log', limit=100) |
174 link = f.link |
175 stats.files += 1 |
=> 176 for timestamp, event, info in parse_log_file(f.filename): |
177 if event == LogParser.COMMENT: |
178 nick, text = info |
timestamp = None, event = SERVER, info = u'--- Log closed Mon Oct 16 00:00:31 2017', global parse_log_file = <function parse_log_file>, f = <irclog2html.logs2html.LogFile instance>, f.filename = '/var/www/html/openrisc-irc/#openrisc.2017-10-14.log' |
/usr/local/lib/python2.7/dist-packages/irclog2html/irclogsearch.py in parse_log_file(filename='/var/www/html/openrisc-irc/#openrisc.2017-10-14.log') |
158 |
159 def parse_log_file(filename): |
=> 160 with closing(open_log_file(filename)) as f: |
161 for row in LogParser(f): |
162 yield row |
global closing = <class 'contextlib.closing'>, global open_log_file = <function open_log_file>, filename = '/var/www/html/openrisc-irc/#openrisc.2017-10-14.log', f undefined |
/usr/local/lib/python2.7/dist-packages/irclog2html/irclog2html.py in open_log_file(filename='/var/www/html/openrisc-irc/#openrisc.2017-10-14.log') |
197 return gzip.open(filename, 'rb') |
198 else: |
=> 199 return io.open(filename, 'rb') |
200 |
201 |
global io = <module 'io' from '/usr/lib/python2.7/io.pyc'>, io.open = <built-in function open>, filename = '/var/www/html/openrisc-irc/#openrisc.2017-10-14.log' |
<type 'exceptions.IOError'>: [Errno 13] Permission denied: '/var/www/html/openrisc-irc/#openrisc.2017-10-14.log'
args =
(13, 'Permission denied')
errno =
13
filename =
'/var/www/html/openrisc-irc/#openrisc.2017-10-14.log'
message =
''
strerror =
'Permission denied'