summaryrefslogtreecommitdiff
path: root/gcc/gdbhooks.py
diff options
context:
space:
mode:
authorVladislav Ivanishin <vlad@ispras.ru>2019-07-14 13:19:29 +0000
committerVladislav Ivanishin <vlad@gcc.gnu.org>2019-07-14 13:19:29 +0000
commitcbfde6ee68dab649e3cf86b0ae569f2fc6ef3900 (patch)
tree6408bdd7b6dee2f8eb7217f571adce583f53a614 /gcc/gdbhooks.py
parenta20f263ba1a76af40eb4e6734529739a2a30ed65 (diff)
gdbhooks.py: dump-fn, dot-fn: cast ret values of fopen/fclose
Work around the following (gdb) Python Exception <class 'gdb.error'> 'fclose@@GLIBC_2.2.5' has unknown return type; cast the call to its declared return type: (gdb) Error occurred in Python: 'fclose@@GLIBC_2.2.5' has unknown return type; cast the call to its declared return type This is due to GDB not being able to pick up and use the return types from debug info for external declarations. 2019-07-14 Vladislav Ivanishin <vlad@ispras.ru> * gdbhooks.py (DumpFn.invoke): Add explicit casts of return values of fopen and fclose to their respective types. (DotFn.invoke): Ditto. From-SVN: r273480
Diffstat (limited to 'gcc/gdbhooks.py')
-rw-r--r--gcc/gdbhooks.py10
1 files changed, 4 insertions, 6 deletions
diff --git a/gcc/gdbhooks.py b/gcc/gdbhooks.py
index 191a5e2dfec..09802c9ce24 100644
--- a/gcc/gdbhooks.py
+++ b/gcc/gdbhooks.py
@@ -740,18 +740,17 @@ class DumpFn(gdb.Command):
f.close()
# Open file
- fp = gdb.parse_and_eval("fopen (\"%s\", \"w\")" % filename)
+ fp = gdb.parse_and_eval("(FILE *) fopen (\"%s\", \"w\")" % filename)
if fp == 0:
print ("Could not open file: %s" % filename)
return
- fp = "(FILE *)%u" % fp
# Dump function to file
_ = gdb.parse_and_eval("dump_function_to_file (%s, %s, %u)" %
(func, fp, flags))
# Close file
- ret = gdb.parse_and_eval("fclose (%s)" % fp)
+ ret = gdb.parse_and_eval("(int) fclose (%s)" % fp)
if ret != 0:
print ("Could not close file: %s" % filename)
return
@@ -810,11 +809,10 @@ class DotFn(gdb.Command):
# Close and reopen temp file to get C FILE*
f.close()
- fp = gdb.parse_and_eval("fopen (\"%s\", \"w\")" % filename)
+ fp = gdb.parse_and_eval("(FILE *) fopen (\"%s\", \"w\")" % filename)
if fp == 0:
print("Cannot open temp file")
return
- fp = "(FILE *)%u" % fp
# Write graph to temp file
_ = gdb.parse_and_eval("start_graph_dump (%s, \"<debug>\")" % fp)
@@ -823,7 +821,7 @@ class DotFn(gdb.Command):
_ = gdb.parse_and_eval("end_graph_dump (%s)" % fp)
# Close temp file
- ret = gdb.parse_and_eval("fclose (%s)" % fp)
+ ret = gdb.parse_and_eval("(int) fclose (%s)" % fp)
if ret != 0:
print("Could not close temp file: %s" % filename)
return