diff options
author | Vladislav Ivanishin <vlad@ispras.ru> | 2019-07-14 13:19:29 +0000 |
---|---|---|
committer | Vladislav Ivanishin <vlad@gcc.gnu.org> | 2019-07-14 13:19:29 +0000 |
commit | cbfde6ee68dab649e3cf86b0ae569f2fc6ef3900 (patch) | |
tree | 6408bdd7b6dee2f8eb7217f571adce583f53a614 /gcc/gdbhooks.py | |
parent | a20f263ba1a76af40eb4e6734529739a2a30ed65 (diff) | |
download | gcc-cbfde6ee68dab649e3cf86b0ae569f2fc6ef3900.zip gcc-cbfde6ee68dab649e3cf86b0ae569f2fc6ef3900.tar.gz gcc-cbfde6ee68dab649e3cf86b0ae569f2fc6ef3900.tar.bz2 |
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.py | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/gcc/gdbhooks.py b/gcc/gdbhooks.py index 191a5e2..09802c9 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 |