From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 12922 invoked by alias); 16 May 2013 20:59:34 -0000 Mailing-List: contact archer-commits-help@sourceware.org; run by ezmlm Sender: Precedence: bulk List-Post: List-Help: List-Subscribe: Received: (qmail 12904 invoked by uid 306); 16 May 2013 20:59:33 -0000 Date: Thu, 16 May 2013 20:59:00 -0000 Message-ID: <20130516205932.12734.qmail@sourceware.org> From: tromey@sourceware.org To: archer-commits@sourceware.org Subject: [SCM] tromey/cleanup-checker: fix init_cutu_and_read_dies X-Git-Refname: refs/heads/tromey/cleanup-checker X-Git-Reftype: branch X-Git-Oldrev: 8a08c1b0d1feef7543005325d453a9efdcb4b7dc X-Git-Newrev: b126c46b967e111bece3f8798f1fcc0f550bf692 X-SW-Source: 2013-q2/txt/msg00074.txt.bz2 List-Id: The branch, tromey/cleanup-checker has been updated discards 8a08c1b0d1feef7543005325d453a9efdcb4b7dc (commit) discards ac28d0b42cadec26606c351c4dc0da64b4ad7cc9 (commit) discards e13ea91044ecb6b7e11ef6a0948a6344ffd74c7b (commit) discards b5934aa76217694c13b6942ceb8cdc1347b3fe90 (commit) discards b908d1f6d6bb9abe29ae0d51b50590ef2b05b2a8 (commit) discards 62c38fe0b1ff8bf404a80e3fdcaf7674447342d5 (commit) discards 68aa964f224cd625de302c7a92cf04002ced6011 (commit) discards 3126887c2a009b84551f6928146274eb257d299c (commit) discards 1b6aab822d8534f9aa988c4a6decebbbc7cc9682 (commit) discards cd87ddaa4a8f00efdda393d1e46c97026061c60f (commit) discards 0e4714eb136cb739e765b48bf92577f4d97a845f (commit) discards 0045f22ad9b72875d5ac8cea97490ae0d0cd5e9b (commit) discards afc715666e5fa331f966e3039b0c235155ce1277 (commit) discards d8eab1fc5ef85749c7323128f719c9f7f6d62a66 (commit) discards 2d3e0116baaa0352c711db1cbb2149a40c84fd48 (commit) discards f3940903f9784069c2b7291830fd1a5d05bc595e (commit) discards d2a26c8f60250b73c0af1dc69afd7e24d07709f5 (commit) discards 19ad7176bb73d31dcf94ec0c73739b2d3d906719 (commit) discards 41aceedec390eee91fc7ea6cb64ab83c88ae7f2a (commit) discards 581961da08a63cfee0d973a33ef7faa3c87b143f (commit) discards 84e0e8372df7f377bb9352ea0412ce8412459cc1 (commit) discards 4325d09461e89376402d4c594c34d4d51ee54eb2 (commit) discards a737657e27e1595d5b04bdbbd772be1b7a746696 (commit) discards cd06d044eb69a3e50650744f950179eeed15e3b6 (commit) discards 8aaa4bff619497e49e8a61a54df0b7f82779bdaa (commit) discards 3b154a472ffac9cea9c09221ece6af9e77b31625 (commit) discards 4fa96e4172912d0b76468717cc3571bed32dd2cd (commit) discards 7c03920f78b234c426fdb1307a8035b268d21562 (commit) discards 668178b2c763a59e4651dabd10ee38fdddc37d2a (commit) discards b82374f54619bb0d461d91ab5a40365992548976 (commit) discards 9b80994f1e27a03ac3bf3dadfbebf1f7837deb92 (commit) discards a7e8faba7c73d1912025d17f01aa3a9a757d832f (commit) discards 36cafe4607fda38a06212cbdb7de1723d1da6f57 (commit) discards 39b5a3293ce43e0a2d1d79633d99bd88e33801e6 (commit) discards f3008ba4857500b99ba46752a25a351b6b4777b8 (commit) discards 92e6b6a1fe3fd7885440b6980377af3ea3214374 (commit) discards 284f852a6a591eebee8ad7771a6bb9a2c23d6894 (commit) discards c0ee22e97e7faba76eb25f400bdb3e4c90ca4f40 (commit) discards b5bf6ca0277ca19092a95363f6d941f388aebb9a (commit) discards db7f01b90cfe91e8983a96110a63d4fa2c38c598 (commit) discards 71e35171076ebf86e6c9317cf02fbbb278e9838f (commit) discards c96847a6874989b24231a314760776becb458c59 (commit) via b126c46b967e111bece3f8798f1fcc0f550bf692 (commit) via 927f199f5b4c929e2e6af9f3fefcff1357c1a9b7 (commit) via 499055a7be510a935a9e0aa0035cb113e300d221 (commit) via 889ef3796e2432eb0ea30ccc81d7e7099987cdfc (commit) via 1b1b855dc118d306eb6c4e55c8f34bc705e51fd9 (commit) via 754ed97cedaa9d4fa4ba49b4483ce47258e71533 (commit) via 40e6daa4eced95f1cb2d0c3d5bdafe82da0bcdff (commit) via 197a244755f95dd4740ae50ce56c323cae77d85e (commit) via d23377272def84730a2adbd4e5a284c67cf25838 (commit) via dad8a21166e083121eb485a77b873f3ddeab42a6 (commit) via 17b829498d92873084d1d5d2f7621aa798cf0782 (commit) via 5643e7d10c0f5494a08673795a6074dc0c7f214f (commit) via 149348747db59898209d195c5b65f0af9e3f5ee6 (commit) via 41abc5022f5822168de9e1561034ccc02dc888c2 (commit) via 23e76c3f554cd9259c4cfb822f1b3d5195f61b59 (commit) via 2da920f7bbb70cd320ec8717e1f52f0b3a9ed3f1 (commit) via 6cda6683baa0b6a2e7ec84397ab5efb7c10fa49e (commit) via 2d1853543c2b3ae07d7443563ed9177a0ae44466 (commit) via 016807462b453627191e61bedb335342b85479a6 (commit) via b2f26fb1659f4956ecdb39a858ff5a921f7c6b27 (commit) via 770fc7a0562c805c6aee0b368fa2c903356679af (commit) via 3d27f67c018ad861ab1cc1873a2479697621439b (commit) via 5fbc877b5b1ba2d02f13ffd1cec88c235efc73ac (commit) via a2b322373dfdf31d72238a6030786414b40fe2bc (commit) via 16b2d9546251585f556a320ba72622184cd47645 (commit) via 8ee06c018224e3bc10097fbad49c1dffd001ff40 (commit) via 26ef109cfd214b6cdb72247ed8191d888ebea4ad (commit) via 2d09254e64c89a90cabde961da769d849eae44c9 (commit) via c4c20af4f698687016c5e2eb8889e7f3c603e2b2 (commit) via c23ae0b8f972073ffde6990ce2ae2497b101bb96 (commit) via b55417f4656d9000fbb9fdde34ff0c3c5d0bd378 (commit) via 734a7aa17709f5e86b4d213a32de374ddd286d6e (commit) via 7cc409a26a8c92de1eeb9f03661848f4c32cf628 (commit) via d154b8bcd46ab7db6bf23399783297f80af1a21f (commit) via c771602adbe1975050ea1cbd23255ef555ea0562 (commit) via 02c275e3d25d04da6cfb72275d4c15b9174c5763 (commit) via b41143e17de2efb94bfbcc00374f9e7d555828e5 (commit) via c55666b4391b55d2451cc05d5fde30b528a29c1d (commit) via 5bee0f1be77fa166678cdce20fd514302a8b6d20 (commit) via b442a2c3a00ce18b8c0ec549943b24175f61eb24 (commit) via e16265ff92cc2a9822a1ada6829f2fbf45adb1dc (commit) via a933249b1f9a8036b9e9e6f4ca704e862ce2faf9 (commit) via 2f29cec422c253be15f2eef04067d1d4f5dfbfaf (commit) via 5aa148e4cbf9f25d8a1a33d71c029abe3a7d9f6c (commit) via 0e8baff8e5a7752131364f177906d70ee92934f0 (commit) via 0c4d80b4815ec4698a37846243ac1994f4d461bf (commit) via 7353e382d81309bf17cc4addd99ef6e52df49150 (commit) via 10853ff1dc86eb6f331f4c7b175d1cb0308b19d0 (commit) via 4917f7eef3ad12d18fe0757ffda9de60ba556078 (commit) via e55999758aa986a1f3e55ad3e741e3d591e3b38a (commit) via 19d4501df9cf271fed4f30f8a24e786d4add9552 (commit) via 6f0258cb652b897a1c2e50197a59c7e8c117f91b (commit) via b01b13936c8ef44b9eb3bc1f6a85edc4c6610888 (commit) via e6e0cb74ef4c2fad6b021adbf9cfb28e1b90372a (commit) via aaff5eec7e98db292460ab53f47194a9e762798d (commit) via b74c156c02cac7fb90ea19bc7a5de78457987a85 (commit) via 78762a4af473e619e3d2b4c545f544ab887d5b6b (commit) via 7a6238d05b50241a569ca445dfa618c3cd3a638c (commit) via a91d830489296a37cc62b9cedff6072b88a8e9fe (commit) via a4c8dde8904ab79f98b6450b1b8deb4c4c32fa7f (commit) via d3184353b6f0f57269d312135c4073c3ebeea74a (commit) via 405f66c46796dbbc453d77ddd8472899c7e0359e (commit) via b5ae236fa445289bccdfcb131df21dc1f7512567 (commit) via a6b1ebe618d1e0e0a01cbeecd11c227469eb7ce9 (commit) via 100be925a50e9bc2634749aef30454ef91892fae (commit) via f34f21507d436eccdc711811486bdb2a3fff0fd7 (commit) via 499e1aa537ff95059f94e3578b46bad03476f81d (commit) via 9ebb53df62142e78f45f2038d1abd6cc50140cf3 (commit) via b7b21175961e89d402475f8315ebd41d38a8b1e1 (commit) via 4561066c2ca4b9803f61aa3d5ab922eacf9074e6 (commit) via 18ff964b7afe30af7c370dc755bab2ba4f6904d1 (commit) via 0b6d485333eaecc80f2ee1c526d00afc34545568 (commit) via 85d1ecb8e8c205ad9920ec7d9122e1f41a8722e6 (commit) via 99625c81b71b4ebde9922688db0c52533ad9169a (commit) via 9ff19ea62ce51ec67ab3fe646aec8a5b3d8b06ce (commit) via 599663b891b44af7854305c29b2e5c9036d3d18a (commit) via a9fd162da6d20785d86daf2963c175d7b31b1502 (commit) via 81160eb832e138cbbbaefcb1a618b833e0cba067 (commit) via e093c20cb935fd6cfd50166fce1f476f61cdedb4 (commit) via 5f44153b7e6247e1a59ada51f4ff56f9ba43d019 (commit) via 6043f67954e86f417874a92239683afc05acc197 (commit) via 3f9c92cea940830cd60a14f0918fc8881c10a11a (commit) via 16231982db16e600b6678b7ba8a50db941f71448 (commit) via c9d9bd917e99201f16e2d7da4b8637d37df66224 (commit) via f9faafae8750b071370766a40e9e1204d667285c (commit) via a2d6e67eab0c21881486166bb23a22a759cbfe0f (commit) via c4d847ed07a5b98bc1d22e1053ae6723278a5ade (commit) via 2b6f779f35f31109cd1fa7e847153d463f1b21ba (commit) via 4ab6caae50b7dd03fdd35f9b63f74323098d1d1a (commit) via 7698b6278eabefc34834cd51a04f8c821d6daed4 (commit) via 6ac38df064fe8efd580ebb9426bbedd343de78c5 (commit) via 77c8328144b9f4724ec07ec612e65bdbd20b04fb (commit) via 6fccee683ae32b5ba453daf063581d6819deeaef (commit) via f039214ffb9514ec16feb28d1f2471b1e1325a0e (commit) via 9f206662f66c7097aff7ef70925f409825a75bdb (commit) via b55209d9a23dfc4e2f563a0b6bdd674f18d908d5 (commit) via c7c855256383b1c3fd1e34704e19e462c603f25b (commit) via 271c6e6cca0e1a275fc9300f004cd51dc1b5433d (commit) via d0dde44e0059b3fbfd55efaf87116ee382d775b4 (commit) from 8a08c1b0d1feef7543005325d453a9efdcb4b7dc (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit b126c46b967e111bece3f8798f1fcc0f550bf692 Author: Tom Tromey Date: Thu May 16 14:43:34 2013 -0600 fix init_cutu_and_read_dies commit 927f199f5b4c929e2e6af9f3fefcff1357c1a9b7 Author: Tom Tromey Date: Thu May 16 14:42:15 2013 -0600 fix dwarf_decode_line_header commit 499055a7be510a935a9e0aa0035cb113e300d221 Author: Tom Tromey Date: Thu May 9 11:44:45 2013 -0600 introduce scoped cleanups This adds scoped cleanups to gdb. A scoped cleanup is a more efficient, and checkable, alternative to the common idiom: cleanup = make_cleanup (null_cleanup, NULL); ... do_cleanups (cleanup); ... where the cleanup is always run when exiting the scope. The efficiency comes from stack allocating the scoped cleanup. This is probably minor. However, I've noticed myself sometimes avoiding null cleanups on this basis, and it is nice to erase that bias. The checking comes from using a GCC extension when available. This check ensures that the scoped cleanup was either run or discarded when the scope exits. commit 889ef3796e2432eb0ea30ccc81d7e7099987cdfc Author: Tom Tromey Date: Wed May 8 14:57:11 2013 -0600 fix up xml-support.c xml-support.c has a function that returns a cleanup via an out parameter. This changes this function to be a normal cleanup constructor -- returning the cleanup directly and returning the other result via an out parameter. This is sort of a hack, but it lets the checker work here. I also noticed that gdb_xml_create_parser_and_cleanup is not really needed, so I removed it. * xml-support.c (gdb_xml_create_parser_and_cleanup_1): Return a cleanup. Remove 'old_chain' argument. Add 'parser_result' argument. (gdb_xml_create_parser_and_cleanup): Remove. (gdb_xml_parse_quick): Use gdb_xml_create_parser_and_cleanup_1. (xml_process_xincludes): Update. * xml-support.h (gdb_xml_create_parser_and_cleanup): Don't declare. commit 1b1b855dc118d306eb6c4e55c8f34bc705e51fd9 Author: Tom Tromey Date: Wed May 8 14:52:26 2013 -0600 fix compile_rx_or_error compile_rx_or_error looks like a constructor, but it can return NULL. This patch changes it to remove the NULL return, making it work like any other cleanup constructor. This is a stylistic patch but I think it is also better for code to follow the normal conventions. * probe.c (collect_probes): Check arguments for NULL before calling compile_rx_or_error. * utils.c (compile_rx_or_error): Require 'rx' to be non-NULL. Remove NULL return. commit 754ed97cedaa9d4fa4ba49b4483ce47258e71533 Author: Tom Tromey Date: Tue May 7 11:57:54 2013 -0600 some fixes to infrun.c This fixes some of the problems in infrun.c that the checker reported. I filed the remaining problems as bugs. This patch is purely stylistic. * infrun.c (handle_vfork_child_exec_or_exit) (fetch_inferior_event, adjust_pc_after_break): Introduce an outer null cleanup. commit 40e6daa4eced95f1cb2d0c3d5bdafe82da0bcdff Author: Tom Tromey Date: Tue May 7 11:36:46 2013 -0600 fix breakpoint_1 This is a stylistic change to make breakpoint_1 analyzable. The issue here is maybe fixable in the analyzer with some work. * breakpoint.c (breakpoint_1): Introduce an outer null cleanup. commit 197a244755f95dd4740ae50ce56c323cae77d85e Author: Tom Tromey Date: Tue May 7 11:34:59 2013 -0600 introduce dangling_cleanup attribute and change source to use it Some functions leak cleanups on purpose. However, these functions aren't "constructors" in the cleanup-checker sense, as they do not return the cleanup. This patch adds an attribute that can be used to mark these functions. This avoids a bunch of false reports from the checker. This patch is really a huge hack. It is basically giving up on cleanly checking the use of cleanups. You can see this most easily by noticing that I elected not to have this property propagate through the call chain. Still, I figured I'd see what people thought of this patch. Without it the checker is harder to use, as you must know which functions are ignorable. Maybe some of these are fixable with a bit more thought. * ada-lang.c (old_renaming_is_invisible): Use DANGLING_CLEANUP. * breakpoint.c (breakpoint_re_set_default): Use DANGLING_CLEANUP. * c-exp.y (operator_stoken): Use DANGLING_CLEANUP. * coffread.c (coff_locate_sections): Use DANGLING_CLEANUP. * contrib/cleanup_check.py (leaks_cleanup): New global. (note_dangling_cleanup, leaves_dangling_cleanup): New functions. (CleanupChecker.compute_master): Add comment. Check leaves_dangling_cleanup. (CleanupChecker.check_cleanups): Don't mention special constructors to the user. (register_attributes): New function. Register it with gcc. * defs.h (DANGLING_CLEANUP): New define. * dwarf2read.c (read_cutu_die_from_dwo, handle_DW_AT_stmt_list) (setup_type_unit_groups, dwarf2_add_field, dwarf2_add_typedef) (dwarf2_add_member_fn, psymtab_include_file_name) (dwarf_decode_lines): Use DANGLING_CLEANUP. * linux-nat.c (linux_child_pid_to_exec_file): Use DANGLING_CLEANUP. * python/py-prettyprint.c (push_dummy_python_frame): Use DANGLING_CLEANUP. * stabsread.c (read_member_functions, read_struct_fields) (read_baseclasses): Use DANGLING_CLEANUP. * utils.h (gdb_bfd_errmsg): Use DANGLING_CLEANUP. commit d23377272def84730a2adbd4e5a284c67cf25838 Author: Tom Tromey Date: Tue May 7 10:55:56 2013 -0600 fix mi-cmd-var.c This is a stylistic change in mi-cmd-var.c that adds outer cleanups where needed by the checker. * mi/mi-cmd-var.c (mi_cmd_var_list_children): Add an outer null cleanup. (mi_cmd_var_update, varobj_update_one): Likewise. commit dad8a21166e083121eb485a77b873f3ddeab42a6 Author: Tom Tromey Date: Tue May 7 10:54:48 2013 -0600 fix cli-script.c read_command_lines_1 had some (IMNSHO) spaghetti-ish code for cleanup handling. This makes the code much simpler to understand, by introducing an outer cleanup. This is another case where a stylistic change for the checker is also nice for the reader. * cli/cli-script.c (read_command_lines_1): Use a null cleanup for 'old_chain'. Do not check 'head' before processing cleanups. commit 17b829498d92873084d1d5d2f7621aa798cf0782 Author: Tom Tromey Date: Tue May 7 09:23:12 2013 -0600 fix mi-cmd-stack.c mi-cmd-stack.d had a conditional cleanup, "cleanup_tuple" that confused the checker. However, there was no need for this, since it was only used via do_cleanups at the end of the function, just before another call to do_cleanups. So, while this is a stylistic patch for the checker, I also consider it a generic improvement for readers of the code. * mi/mi-cmd-stack.c (list_arg_or_local): Remove "cleanup_tuple". commit 5643e7d10c0f5494a08673795a6074dc0c7f214f Author: Tom Tromey Date: Tue May 7 09:03:52 2013 -0600 fix dbxread.c This is a stylistic change to make some code in dbxread.c analyzable by the checker. * dbxread.c (dbx_read_symtab): Declare 'back_to' in a more inner scope. Unconditionally call do_cleanups. commit 149348747db59898209d195c5b65f0af9e3f5ee6 Author: Tom Tromey Date: Tue May 7 09:01:51 2013 -0600 fix source.c find_and_open_source can leak a cleanup. * source.c (find_and_open_source): Call do_cleanups. commit 41abc5022f5822168de9e1561034ccc02dc888c2 Author: Tom Tromey Date: Tue May 7 08:53:19 2013 -0600 fix linux-thread-db.c This is a stylistic change to make it so the checker can analyze a function in linux-thread-db.c. * linux-thread-db.c (thread_db_load_search): Unconditionally call do_cleanups. commit 23e76c3f554cd9259c4cfb822f1b3d5195f61b59 Author: Tom Tromey Date: Mon May 6 13:47:54 2013 -0600 fix in solib-aix.c solib_aix_bfd_open has an early "return" that doesn't run cleanups. This fixes the problem by dropping the null_cleanup and using a later cleanup as the master cleanup for the function. * solib-aix.c (solib_aix_bfd_open): Don't use a null cleanup for 'cleanup'; instead use a later one. commit 2da920f7bbb70cd320ec8717e1f52f0b3a9ed3f1 Author: Tom Tromey Date: Thu Mar 7 07:43:40 2013 -0700 use explicit returns to avoid checker confusion The checker does not understand the idiom if (except.reason < 0) { do_cleanups (whatever); GDB_PY_HANDLE_EXCEPTION (except); } because it doesn't realize that the nested 'if' actually has the same condition. This fixes instances of this to be more explicit. * python/py-breakpoint.c (bppy_get_commands): Use explicit, unconditional return. * python/py-frame.c (frapy_read_var): Likewise. * python/python.c (gdbpy_decode_line): Likewise. commit 6cda6683baa0b6a2e7ec84397ab5efb7c10fa49e Author: Tom Tromey Date: Tue Mar 5 14:43:27 2013 -0700 fix cp-namespace.c cp_lookup_symbol_imports_or_template could return without running cleanups. * cp-namespace.c (cp_lookup_symbol_imports_or_template): Call do_cleanups on all return paths. commit 2d1853543c2b3ae07d7443563ed9177a0ae44466 Author: Tom Tromey Date: Tue Mar 5 14:36:21 2013 -0700 fix top.c execute_command can leak a cleanup along one return path. * top.c (execute_command): Discard 'cleanup_if_error' cleanups. commit 016807462b453627191e61bedb335342b85479a6 Author: Tom Tromey Date: Tue Mar 5 14:33:18 2013 -0700 fix one bug in stabsread.c Some code in stabsread.c can return without running cleanups. * stabsread.c (read_struct_type): Call do_cleanups along all return paths. commit b2f26fb1659f4956ecdb39a858ff5a921f7c6b27 Author: Tom Tromey Date: Tue Mar 5 14:31:14 2013 -0700 fix mipsread.c Some code in mipsread.c could leak cleanups along some return paths. * mipsread.c (read_alphacoff_dynamic_symtab): Call do_cleanups along all return paths. commit 770fc7a0562c805c6aee0b368fa2c903356679af Author: Tom Tromey Date: Tue Mar 5 14:22:40 2013 -0700 fix one bug in symfile.c find_separate_debug_file could leak a cleanup along some return paths. * symfile.c (find_separate_debug_file): Call do_cleanups along all return paths. commit 3d27f67c018ad861ab1cc1873a2479697621439b Author: Tom Tromey Date: Tue Mar 5 14:21:16 2013 -0700 fix symtab.c search_symbols had some bad code resulting in a cleanup being both discarded and run. * symtab.c (search_symbols): Introduce a null cleanup for 'retval_chain'. commit 5fbc877b5b1ba2d02f13ffd1cec88c235efc73ac Author: Tom Tromey Date: Tue Mar 5 14:13:35 2013 -0700 fix py-value.c Some code in py-value.c could exit a loop without running some cleanups made in the loop. * python/py-value.c (valpy_binop): Call do_cleanups before exiting loop. commit a2b322373dfdf31d72238a6030786414b40fe2bc Author: Tom Tromey Date: Tue Mar 5 14:11:25 2013 -0700 fix py-prettyprint.c print_children, in py-prettyprint.c, could call do_cleanups twice on the same cleanup. * python/py-prettyprint.c (print_children): Remove extra do_cleanups call. commit 16b2d9546251585f556a320ba72622184cd47645 Author: Tom Tromey Date: Tue Mar 5 14:10:29 2013 -0700 fix py-frame.c A couple return paths in frapy_read_var were missing do_cleanups calls. * python/py-frame.c (frapy_read_var): Call do_cleanups along all return paths. commit 8ee06c018224e3bc10097fbad49c1dffd001ff40 Author: Tom Tromey Date: Tue Mar 5 14:08:39 2013 -0700 fix py-breakpoint.c One return path in bppy_get_commands was missing a do_cleanups call. * python/py-breakpoint.c (bppy_get_commands): Call do_cleanups along all return paths. commit 26ef109cfd214b6cdb72247ed8191d888ebea4ad Author: Tom Tromey Date: Tue Mar 5 14:05:33 2013 -0700 simplify cli-logging.c for analysis This is another stylistic patch. It changes cli-logging.c to be analyzable by the checker, again following the method of adding an outer cleanup and unconditionally calling do_cleanups. * cli/cli-logging.c (set_logging_redirect): Unconditionally call do_cleanups. commit 2d09254e64c89a90cabde961da769d849eae44c9 Author: Tom Tromey Date: Tue Mar 5 14:04:14 2013 -0700 fix varobj.c c_value_of_root is missing a call to do_cleanups at one return. This fixes the problem by removing that return and letting control fall through. * varobj.c (c_value_of_root): Call do_cleanups along all return paths. commit c4c20af4f698687016c5e2eb8889e7f3c603e2b2 Author: Tom Tromey Date: Tue Mar 5 14:00:20 2013 -0700 make a cleanup unconditionally in tracepoint.c This is another cosmetic patch. It introduces an "outer" cleanup in trace_dump_command and arranges to unconditionally call do_cleanups. This lets the checker analyze the function. * tracepoint.c (trace_dump_command): Unconditionally call do_cleanups. commit c23ae0b8f972073ffde6990ce2ae2497b101bb96 Author: Tom Tromey Date: Mon Mar 4 14:08:50 2013 -0700 fix two buglets in breakpoint.c First, output_thread_groups leaks a cleanup along one return path. Second, parse_cmd_to_aexpr could return without running its cleanups, if there was an exception in a TRY_CATCH. * breakpoint.c (output_thread_groups, parse_cmd_to_aexpr): Call do_cleanups earlier. commit b55417f4656d9000fbb9fdde34ff0c3c5d0bd378 Author: Tom Tromey Date: Mon Mar 4 14:07:24 2013 -0700 fix cleanup handling in macho_symfile_read macho_symfile_read leaks a cleanup by assigning to 'back_to' too late. * machoread.c (macho_symfile_read): Assign first cleanup to 'back_to'. commit 734a7aa17709f5e86b4d213a32de374ddd286d6e Author: Tom Tromey Date: Mon Mar 4 14:05:14 2013 -0700 fix cleanup handling in m32r_load m32r_load is missing a call to do_cleanups along one return path. * m32r-rom.c (m32r_load): Call do_cleanups at all returns. commit 7cc409a26a8c92de1eeb9f03661848f4c32cf628 Author: Tom Tromey Date: Mon Mar 4 13:51:53 2013 -0700 fix list_available_thread_groups list_available_thread_groups, in mi-main.c, leaks a cleanup. This changes it to call do_cleanups. * mi/mi-main.c (list_available_thread_groups): Call do_cleanups. commit d154b8bcd46ab7db6bf23399783297f80af1a21f Author: Tom Tromey Date: Mon Mar 4 13:50:24 2013 -0700 cleanup fixes for inf-ptrace.c This is one of the stylistic patches. The code here in inf-ptrace.c is not incorrect, but it is in a style that the cleanup checker cannot handle. This patch changes it to a simpler style, following the usual method of introducing an unconditional "outer" cleanup. * inf-ptrace.c (inf_ptrace_create_inferior): Unconditionally call discard_cleanups. (inf_ptrace_attach): Likewise. commit c771602adbe1975050ea1cbd23255ef555ea0562 Author: Tom Tromey Date: Mon Mar 4 13:49:52 2013 -0700 cleanup fixes for remote-mips.c remote-mips.c has a few 'return's where cleanups are not run. * remote-mips.c (mips_exit_debug): Call do_cleanups on all return paths. (mips_initialize): Likewise. (common_open): Call do_cleanups. commit 02c275e3d25d04da6cfb72275d4c15b9174c5763 Author: Tom Tromey Date: Mon Mar 4 13:40:05 2013 -0700 fix up cleanup handling in internal_vproblem internal_vproblem can return, so this introduces proper cleanup handling there. Otherwise it may make a cleanup that is leaked. * utils.c (internal_vproblem): Call do_cleanups. commit b41143e17de2efb94bfbcc00374f9e7d555828e5 Author: Tom Tromey Date: Mon Mar 4 13:33:48 2013 -0700 fix linespec bug noticed by the checker This fixes a linespec bug noticed by the cleanup checker. find_linespec_symbols did this: cleanup = demangle_for_lookup (name, state->language->la_language, &lookup_name); [...] cleanup = make_cleanup (xfree, canon); But this is wrong, as it makes a subsequent call to do_cleanups not clean up all the local state. * linespec.c (find_linespec_symbols): Don't reassign to 'cleanup'. commit c55666b4391b55d2451cc05d5fde30b528a29c1d Author: Tom Tromey Date: Mon Mar 4 13:32:16 2013 -0700 remove erroneous return from setup_user_args This fixes setup_user_args to drop a useless and confusing "return". * cli/cli-script.c (setup_user_args): Don't return after error. commit 5bee0f1be77fa166678cdce20fd514302a8b6d20 Author: Tom Tromey Date: Mon Mar 4 12:04:43 2013 -0700 fix cleanups in som_symtab_read This fixes som_symtab_read not to leak cleanups. * somread.c (som_symtab_read): Call do_cleanups. commit b442a2c3a00ce18b8c0ec549943b24175f61eb24 Author: Tom Tromey Date: Thu May 9 10:30:37 2013 -0600 fix print_command_1 This is a stylistic patch to make it so the checker can analyze print_command_1. This amounts to installing an outer cleanup and unconditionally invoking it. * printcmd.c (print_command_1): Unconditionally call do_cleanups. commit e16265ff92cc2a9822a1ada6829f2fbf45adb1dc Author: Tom Tromey Date: Mon Mar 4 12:02:33 2013 -0700 some cleanup checker fixes Fix some bugs pointed out by the cleanup checker. This one just fixes some simple CLI reports, where CLI commands know that their caller will do cleanups. This an older style with few instances, so it is simpler to fix them up than to teach the checker about it. * cli/cli-cmds.c (cd_command, alias_command): Call do_cleanups. * cli/cli-dump.c (restore_binary_file): Call do_cleanups. * interps.c (interpreter_exec_cmd): Call do_cleanups. * source.c (show_substitute_path_command): Call do_cleanups. (unset_substitute_path_command, set_substitute_path_command): Likewise. * symfile.c (load_command): Call do_cleanups. commit a933249b1f9a8036b9e9e6f4ca704e862ce2faf9 Author: Tom Tromey Date: Mon Mar 4 11:31:47 2013 -0700 add the cleanup checker This patch adds the cleanup checker. This is a Python plugin for GCC that checks some rules for cleanup handling. In particular it tries to notice when cleanups are left dangling at the end of a function. It does this by applying a few simple rules. First, it understands that a function whose return type is "struct cleanup *" is a "cleanup constructor". Such functions are expected to return the first cleanup that they make. Then, it has the notion of a "master cleanup". The checker keeps a stack of all cleanups made in a basic block. The first element is pushed on the stack is the master cleanup -- the one that must later be passed to either do_cleanups or discard_cleanups. It is not perfect -- some constructs confuse it. So, part of this series rewrites some code in gdb so that it is analyzable. I'll note these spots and you can decide whether or not this is a good idea. This patch also changes gcc-with-excheck to give it options. Now you must use either -Xc (for the cleanup checker) or -Xx (for the exception checker). * contrib/cleanup_check.py: New file. * contrib/gcc-with-excheck: Add option parsing. commit 2f29cec422c253be15f2eef04067d1d4f5dfbfaf Author: Tom Tromey Date: Mon Mar 4 11:20:36 2013 -0700 add README.archer commit 5aa148e4cbf9f25d8a1a33d71c029abe3a7d9f6c Author: Cary Coutant Date: Thu May 16 16:34:50 2013 +0000 bfd/ * ecoff.c (ecoff_link_check_archive_element): Add initializers for external_ext_size and esize. commit 0e8baff8e5a7752131364f177906d70ee92934f0 Author: Tristan Gingold Date: Thu May 16 15:41:40 2013 +0000 bfd/ 2013-05-16 Tristan Gingold * coff-rs6000.c (_bfd_xcoff_reloc_type_lookup): Handle BFD_RELOC_16. * coff64-rs6000.c (xcoff64_reloc_type_lookup): Likewise. gas/ 2013-05-16 Tristan Gingold * config/tc-ppc.c (ppc_is_toc_sym): Symbols of class XMC_TC are also TOC symbols. commit 0c4d80b4815ec4698a37846243ac1994f4d461bf Author: Luis Machado Date: Thu May 16 10:31:49 2013 +0000 * linux-low.c: Move definition checks upwards for PT_TEXT_ADDR, PT_DATA_ADDR and PT_TEXT_END_ADDR. Update comments. (linux_read_offsets): Remove PT_TEXT_ADDR, PT_DATA_ADDR and PT_TEXT_END_ADDR guards. Update comments. (linux_target_op) : Conditionally define to linux_read_offsets if the target is UCLIBC and if it defines PT_TEXT_ADDR, PT_DATA_ADDR and PT_TEXT_END_ADDR. commit 7353e382d81309bf17cc4addd99ef6e52df49150 Author: Pedro Alves Date: Thu May 16 10:13:33 2013 +0000 gdb.ada/complete.exp: Fix FIXME. 2013-05-16 Pedro Alves * gdb.ada/complete.exp (test_gdb_no_completion): Fix typo in comment. Use gdb_test_no_output. commit 10853ff1dc86eb6f331f4c7b175d1cb0308b19d0 Author: Joel Brobecker Date: Thu May 16 07:39:42 2013 +0000 [dwarf]: Add DW_LANG_UPC support in set_cu_language. gdb/ChangeLog: * dwarf2read.c (set_cu_language): Add DW_LANG_UPC handling. commit 4917f7eef3ad12d18fe0757ffda9de60ba556078 Author: Joel Brobecker Date: Thu May 16 07:02:42 2013 +0000 Missing do_cleanups in ada_make_symbol_completion_list. This results in an internal-warning when trying the completion when in Ada mode: (gdb) b simple /[...]/cleanups.c:265: internal-warning: restore_my_cleanups has found a stale cleanup A problem internal to GDB has been detected, further debugging may prove unreliable. Quit this debugging session? (y or n) gdb/ChangeLog: * ada-lang.c (ada_make_symbol_completion_list): Make sure all cleanups are done before returning from this function. gdb/testsuite/ChangeLog: * gdb.ada/complete.exp: Add test verifying completion using the "tab" key. commit e55999758aa986a1f3e55ad3e741e3d591e3b38a Author: Alan Modra Date: Thu May 16 00:00:06 2013 +0000 daily update commit 19d4501df9cf271fed4f30f8a24e786d4add9552 Author: gdbadmin Date: Thu May 16 00:00:02 2013 +0000 *** empty log message *** commit 6f0258cb652b897a1c2e50197a59c7e8c117f91b Author: Keith Seitz Date: Wed May 15 21:21:04 2013 +0000 * gdb.base/filesym.exp: New completer test. * gdb.base/filesym.c: New file. commit b01b13936c8ef44b9eb3bc1f6a85edc4c6610888 Author: Mike Frysinger Date: Wed May 15 17:49:43 2013 +0000 sim: arm: add support for MOVW and MOVT instructions From: Jayant R. Sonar This patch adds simulator support for handling the armv7 instructions 'movw (immediate)' and 'movt'. Compiler frequently use these instructions to load the 32bit addresses of global variables, string pointers etc. into the general registers. In absence of support of these instructions: 1. GDB run simulator fails to print even simple "hello world" string on console. 2. Loading of global variable addresses into the registers fail causing arithmetic operation failures. Patch has been regression tested for arm-none-eabi (-march=armv7-a). commit e6e0cb74ef4c2fad6b021adbf9cfb28e1b90372a Author: Pedro Alves Date: Wed May 15 17:33:04 2013 +0000 Remove my name from a couple tests. Tested on x86_64 Fedora 17. gdb/testsuite/ 2013-05-15 Pedro Alves * gdb.base/fixsection.c: Remove attribution. * gdb.base/watch-read.exp: Ditto. commit aaff5eec7e98db292460ab53f47194a9e762798d Author: Joel Brobecker Date: Wed May 15 12:49:05 2013 +0000 Remove forward enum declaration in utils.h. These forward declarations are a GNU extension, and they trigger a build warning when the compiler does not support it. gdb/ChangeLog: * utils.h: #include "exceptions.h". (enum errors): Remove partial declaration. ----------------------------------------------------------------------- Summary of changes: bfd/ChangeLog | 19 + bfd/coff-rs6000.c | 4 +- bfd/coff64-rs6000.c | 3 + bfd/coffcode.h | 6 + bfd/ecoff.c | 4 +- bfd/elf64-aarch64.c | 1 + bfd/version.h | 2 +- gdb/ChangeLog | 239 ++++ gdb/Makefile.in | 9 +- gdb/NEWS | 4 + gdb/ada-lang.c | 4 +- gdb/cleanups.c | 5 +- gdb/common/filestuff.c | 27 + gdb/common/filestuff.h | 10 + gdb/configure | 10 +- gdb/configure.ac | 10 +- gdb/contrib/cleanup_check.py | 197 ++-- gdb/corelow.c | 12 + gdb/darwin-nat.c | 7 + gdb/data-directory/Makefile.in | 4 + gdb/doc/ChangeLog | 22 + gdb/doc/gdb.texinfo | 862 ++++++++++++- gdb/dwarf2read.c | 40 +- gdb/eval.c | 14 +- gdb/gcore.c | 2 +- gdb/gcore.h | 2 +- gdb/gdbarch.c | 33 + gdb/gdbarch.h | 9 + gdb/gdbarch.sh | 4 + gdb/gdbserver/ChangeLog | 10 + gdb/gdbserver/linux-low.c | 57 +- gdb/go32-nat.c | 2 +- gdb/inf-ttrace.c | 11 + gdb/inferior.h | 2 +- gdb/inflow.c | 2 +- gdb/linespec.c | 4 + gdb/mi/mi-cmd-stack.c | 229 +++- gdb/mi/mi-cmds.c | 1 + gdb/mi/mi-cmds.h | 1 + gdb/opencl-lang.c | 11 +- gdb/python/lib/gdb/FrameDecorator.py | 285 ++++ gdb/python/lib/gdb/FrameIterator.py | 45 + gdb/python/lib/gdb/__init__.py | 2 + gdb/python/lib/gdb/command/frame_filters.py | 461 +++++++ gdb/python/lib/gdb/frames.py | 229 +++ gdb/python/py-framefilter.c | 1528 +++++++++++++++++++++ gdb/python/py-objfile.c | 60 + gdb/python/py-progspace.c | 60 + gdb/python/py-utils.c | 22 + gdb/python/python-internal.h | 3 + gdb/python/python.c | 9 + gdb/python/python.h | 66 + gdb/record-full.c | 4 +- gdb/record.c | 54 +- gdb/remote.c | 6 +- gdb/rs6000-aix-tdep.c | 312 +++++- gdb/{sparc-sol-thread.c => rs6000-aix-tdep.h} | 35 +- gdb/rs6000-lynx178-tdep.c | 14 +- gdb/rs6000-nat.c | 210 +--- gdb/sol-thread.c | 24 + gdb/solib-aix.c | 26 +- gdb/stack.c | 121 ++- gdb/symfile.c | 79 +- gdb/symfile.h | 6 +- gdb/target.c | 12 +- gdb/target.h | 9 +- gdb/testsuite/ChangeLog | 46 + gdb/testsuite/gdb.ada/complete.exp | 24 +- gdb/testsuite/gdb.base/default.exp | 2 + gdb/testsuite/gdb.base/exprs.c | 1 + gdb/testsuite/gdb.base/exprs.exp | 4 + gdb/{gcore.h => testsuite/gdb.base/filesym.c} | 25 +- gdb/testsuite/gdb.base/filesym.exp | 50 + gdb/testsuite/gdb.base/fixsection.c | 4 +- gdb/testsuite/gdb.base/setshow.exp | 2 + gdb/testsuite/gdb.base/watch-read.exp | 2 - gdb/testsuite/gdb.dwarf2/implptrconst.exp | 8 +- gdb/testsuite/gdb.python/py-framefilter-gdb.py.in | 48 + gdb/testsuite/gdb.python/py-framefilter-mi.c | 138 ++ gdb/testsuite/gdb.python/py-framefilter-mi.exp | 179 +++ gdb/testsuite/gdb.python/py-framefilter.c | 155 +++ gdb/testsuite/gdb.python/py-framefilter.exp | 239 ++++ gdb/testsuite/gdb.python/py-framefilter.py | 117 ++ gdb/{gcore.h => testsuite/gdb.trace/qtro.c} | 30 +- gdb/testsuite/gdb.trace/qtro.exp | 173 +++ gdb/ui-file.c | 2 +- gdb/ui-file.h | 2 +- gdb/utils.h | 2 +- gdb/value.h | 2 +- gdb/version.in | 2 +- include/opcode/ChangeLog | 9 + include/opcode/mips.h | 17 +- libiberty/ChangeLog | 8 + libiberty/hashtab.c | 13 +- opcodes/ChangeLog | 24 + opcodes/aarch64-asm.c | 1 - opcodes/aarch64-opc.c | 6 +- opcodes/i386-gen.c | 2 +- opcodes/i386-init.h | 2 +- opcodes/mips-dis.c | 19 +- opcodes/mips-opc.c | 26 +- sim/arm/ChangeLog | 5 + sim/arm/armemu.c | 12 +- sim/bfin/ChangeLog | 4 + sim/bfin/configure | 3 +- sim/common/ChangeLog | 6 + sim/common/acinclude.m4 | 3 +- sim/cr16/ChangeLog | 4 + sim/cr16/configure | 3 +- sim/cris/ChangeLog | 4 + sim/cris/configure | 3 +- sim/d10v/ChangeLog | 4 + sim/d10v/configure | 3 +- sim/igen/ChangeLog | 4 + sim/igen/configure | 3 +- sim/m68hc11/ChangeLog | 4 + sim/m68hc11/configure | 3 +- sim/mips/ChangeLog | 4 + sim/mips/configure | 3 +- sim/mn10300/ChangeLog | 4 + sim/mn10300/configure | 3 +- sim/testsuite/sim/arm/ChangeLog | 5 + sim/testsuite/sim/arm/movw-movt.ms | 53 + sim/v850/ChangeLog | 8 + sim/v850/configure | 3 +- sim/v850/v850.igen | 8 +- 126 files changed, 6450 insertions(+), 670 deletions(-) create mode 100644 gdb/python/lib/gdb/FrameDecorator.py create mode 100644 gdb/python/lib/gdb/FrameIterator.py create mode 100644 gdb/python/lib/gdb/command/frame_filters.py create mode 100644 gdb/python/lib/gdb/frames.py create mode 100644 gdb/python/py-framefilter.c rename gdb/{sparc-sol-thread.c => rs6000-aix-tdep.h} (54%) copy gdb/{gcore.h => testsuite/gdb.base/filesym.c} (65%) create mode 100644 gdb/testsuite/gdb.base/filesym.exp create mode 100644 gdb/testsuite/gdb.python/py-framefilter-gdb.py.in create mode 100644 gdb/testsuite/gdb.python/py-framefilter-mi.c create mode 100644 gdb/testsuite/gdb.python/py-framefilter-mi.exp create mode 100644 gdb/testsuite/gdb.python/py-framefilter.c create mode 100644 gdb/testsuite/gdb.python/py-framefilter.exp create mode 100644 gdb/testsuite/gdb.python/py-framefilter.py copy gdb/{gcore.h => testsuite/gdb.trace/qtro.c} (65%) create mode 100644 gdb/testsuite/gdb.trace/qtro.exp create mode 100644 sim/testsuite/sim/arm/movw-movt.ms First 500 lines of diff: diff --git a/bfd/ChangeLog b/bfd/ChangeLog index e680c3a..e220c63 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,22 @@ +2013-05-16 Cary Coutant + + * ecoff.c (ecoff_link_check_archive_element): Add initializers for + external_ext_size and esize. + +2013-05-16 Tristan Gingold + + * coff-rs6000.c (_bfd_xcoff_reloc_type_lookup): Handle BFD_RELOC_16. + * coff64-rs6000.c (xcoff64_reloc_type_lookup): Likewise. + +2013-05-15 Andreas Schwab + + * elf64-aarch64.c (elf_backend_default_execstack): Define to 0. + +2013-05-10 Joel Brobecker + + * coffcode.h (styp_to_sec_flags) [RS6000COFF_C]: Add handling + of STYP_EXCEPT, STYP_LOADER and STYP_TYPCHK sections. + 2013-05-09 Joel Brobecker * bfd.c (_bfd_default_error_handler): Replace use of putc diff --git a/bfd/coff-rs6000.c b/bfd/coff-rs6000.c index 0945aca..aa61afb 100644 --- a/bfd/coff-rs6000.c +++ b/bfd/coff-rs6000.c @@ -1098,7 +1098,6 @@ reloc_howto_type xcoff_howto_table[] = 0xffff, /* src_mask */ 0xffff, /* dst_mask */ FALSE), /* pcrel_offset */ - }; void @@ -1146,6 +1145,9 @@ _bfd_xcoff_reloc_type_lookup (bfd *abfd ATTRIBUTE_UNUSED, return &xcoff_howto_table[8]; case BFD_RELOC_PPC_TOC16: return &xcoff_howto_table[3]; + case BFD_RELOC_16: + /* Note that this relocation is only internally used by gas. */ + return &xcoff_howto_table[0xc]; case BFD_RELOC_32: case BFD_RELOC_CTOR: return &xcoff_howto_table[0]; diff --git a/bfd/coff64-rs6000.c b/bfd/coff64-rs6000.c index 5f4a502..56a0d25 100644 --- a/bfd/coff64-rs6000.c +++ b/bfd/coff64-rs6000.c @@ -1826,6 +1826,9 @@ xcoff64_reloc_type_lookup (bfd *abfd ATTRIBUTE_UNUSED, return &xcoff64_howto_table[8]; case BFD_RELOC_PPC_TOC16: return &xcoff64_howto_table[3]; + case BFD_RELOC_16: + /* Note that this relocation is only internally used by gas. */ + return &xcoff64_howto_table[0xc]; case BFD_RELOC_32: case BFD_RELOC_CTOR: return &xcoff64_howto_table[0x1c]; diff --git a/bfd/coffcode.h b/bfd/coffcode.h index 9d9c992..2a1a172 100644 --- a/bfd/coffcode.h +++ b/bfd/coffcode.h @@ -795,6 +795,12 @@ styp_to_sec_flags (bfd *abfd ATTRIBUTE_UNUSED, else if (styp_flags & STYP_PAD) sec_flags = 0; #ifdef RS6000COFF_C + else if (styp_flags & STYP_EXCEPT) + sec_flags |= SEC_LOAD; + else if (styp_flags & STYP_LOADER) + sec_flags |= SEC_LOAD; + else if (styp_flags & STYP_TYPCHK) + sec_flags |= SEC_LOAD; else if (styp_flags & STYP_DWARF) sec_flags |= SEC_DEBUGGING; #endif diff --git a/bfd/ecoff.c b/bfd/ecoff.c index 5add50c..7bfb333 100644 --- a/bfd/ecoff.c +++ b/bfd/ecoff.c @@ -3561,9 +3561,9 @@ ecoff_link_check_archive_element (bfd *abfd, void (* const swap_ext_in) (bfd *, void *, EXTR *) = backend->debug_swap.swap_ext_in; HDRR *symhdr; - bfd_size_type external_ext_size; + bfd_size_type external_ext_size = 0; void * external_ext = NULL; - bfd_size_type esize; + bfd_size_type esize = 0; char *ssext = NULL; char *ext_ptr; char *ext_end; diff --git a/bfd/elf64-aarch64.c b/bfd/elf64-aarch64.c index e3cae95..aef472f 100644 --- a/bfd/elf64-aarch64.c +++ b/bfd/elf64-aarch64.c @@ -7181,6 +7181,7 @@ const struct elf_size_info elf64_aarch64_size_info = #define elf_backend_may_use_rela_p 1 #define elf_backend_default_use_rela_p 1 #define elf_backend_got_header_size (GOT_ENTRY_SIZE * 3) +#define elf_backend_default_execstack 0 #undef elf_backend_obj_attrs_section #define elf_backend_obj_attrs_section ".ARM.attributes" diff --git a/bfd/version.h b/bfd/version.h index 4cb9d1f..e01b6f7 100644 --- a/bfd/version.h +++ b/bfd/version.h @@ -1,4 +1,4 @@ -#define BFD_VERSION_DATE 20130509 +#define BFD_VERSION_DATE 20130516 #define BFD_VERSION @bfd_version@ #define BFD_VERSION_STRING @bfd_version_package@ @bfd_version_string@ #define REPORT_BUGS_TO @report_bugs_to@ diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 2d1e3e1..8df3cff 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,242 @@ +2013-05-16 Joel Brobecker + + * dwarf2read.c (set_cu_language): Add DW_LANG_UPC handling. + +2013-05-16 Joel Brobecker + + * ada-lang.c (ada_make_symbol_completion_list): Make sure + all cleanups are done before returning from this function. + +2013-05-15 Joel Brobecker + + * utils.h: #include "exceptions.h". + (enum errors): Remove partial declaration. + +2013-05-15 Joel Brobecker + + * gdbarch.sh (core_xfer_shared_libraries_aix): New method. + * gdbarch.h, gdbarch.c: Regenerate. + * corelow.c (core_xfer_partial): Add TARGET_OBJECT_LIBRARIES_AIX + handling. + + * rs6000-aix-tdep.h: New file. + * Makefile.in (HFILES_NO_SRCDIR): Add rs6000-aix-tdep.h. + * rs6000-aix-tdep.c: Include "rs6000-aix-tdep.h" and + "xml-utils.h". + (struct field_info, struct ld_info_desc): New types. + (ld_info32_desc, ld_info64_desc): New static constants. + (struct ld_info): New type. + (rs6000_aix_extract_ld_info): New function. + (rs6000_aix_shared_library_to_xml): Likewise. + (rs6000_aix_ld_info_to_xml): Likewise. + (rs6000_aix_core_xfer_shared_libraries_aix): Likewise. + (rs6000_aix_init_osabi): Add call to + set_gdbarch_core_xfer_shared_libraries_aix. + * rs6000-nat.c: Add "rs6000-aix-tdep.h" include. + Remove "xml-utils.h" include. + (LdInfo): Delete typedef. + (ARCH64_DECL, LDI_FIELD, LDI_NEXT, LDI_FD, LDI_FILENAME): + Delete macros. + (rs6000_ptrace_ldinfo): Change return type to gdb_byte *. + Adjust code accordingly. + (rs6000_core_ldinfo): Delete, folded into + rs6000_aix_core_xfer_shared_libraries_aix. + (rs6000_xfer_shared_library): Delete. + (rs6000_xfer_shared_libraries): Reimplement. + +2013-05-15 Markus Metzger + + * record.c (record_goto_cmdlist): New. + (cmd_record_goto): Split into this ... + (cmd_record_goto_begin): ... this + (cmd_record_goto_end): ... and this. + (_initialize_record): Change "record goto" to prefix command. + Add commands for "record goto begin" and "record goto end". + Add an alias for "record goto start" to "record goto begin". + +2013-05-14 Jan Kratochvil + + * linespec.c (convert_linespec_to_sals): New comment for + SOURCE_FILENAME assignment. + +2013-05-14 Jan Kratochvil + + * cleanups.c (restore_my_cleanups): Replace gdb_assert by + internal_warning. + +2013-05-14 Tom Tromey + + * eval.c (parse_and_eval_long): Make 'exp' const. + * value.h (parse_and_eval_long): Update. + +2013-05-14 Tom Tromey + + * ui-file.c (gdb_fopen): Make arguments const. + * ui-file.h (gdb_fopen): Make arguments const. + +2013-05-14 Tom Tromey + + * remote.c (remote_set_trace_notes): Make arguments const. + * target.c (update_current_target): Update cast. + * target.h (to_set_trace_notes): Make arguments const. + +2013-05-14 Tom Tromey + + * go32-nat.c (go32_terminal_info): Make 'args' const. + * inferior.h (child_terminal_info): Update. + * inflow.c (child_terminal_info): Make 'args' const. + * target.c (default_terminal_info): Make 'args' const. + (debug_to_terminal_save_ours): Likewise. + * target.h (struct target_ops) : Make argument + const. + +2013-05-13 Tom Tromey + + * gcore.c (create_gcore_bfd): Make 'filename' const. + * gcore.h (create_gcore_bfd): Make 'filename' const. + * record-full.c (record_full_save): Make 'recfilename' const. + * target.c (target_save_record): Make 'filename' const. + * target.h (struct target_ops) : Make 'filename' + const. + (target_save_record): Likewise. + +2013-05-13 Tom Tromey + + PR gdb/15338: + * dwarf2read.c (dwarf2_record_block_ranges): Ensure that the + ranges section has been read. + +2013-05-13 Tom Tromey + + PR exp/15364: + * eval.c (evaluate_subexp_standard) : Return a not_lval value for + EVAL_AVOID_SIDE_EFFECTS. + * opencl-lang.c (evaluate_subexp_opencl): Return a not_lval value + for EVAL_AVOID_SIDE_EFFECTS. + +2013-05-13 Joel Brobecker + + * rs6000-aix-tdep.c (rs6000_push_dummy_call): Convert + floating point registers to register type before storing + value. + * rs6000-lynx178-tdep.c (rs6000_lynx178_push_dummy_call): + Likewise. + +2013-05-10 Joel Brobecker + Tom Tromey + + * common/filestuff.c (mark_fd_no_cloexec, unmark_fd_no_cloexec): + New functions. + * common/filestuff.c (mark_fd_no_cloexec, unmark_fd_no_cloexec): + Declare. + * darwin-nat.c (darwin_pre_ptrace): Use mark_fd_no_cloexec. + (darwin_ptrace_him): Use unmark_fd_no_cloexec. + * inf-ttrace.c (do_cleanup_pfds): Use unmark_fd_no_cloexec. + (inf_ttrace_prepare): Use mark_fd_no_cloexec. + +2013-05-10 Freddie Chopin + Tom Tromey + + PR build/15414: + * configure: Rebuild. + * configure.ac (build_warnings): Do not use -Wformat-nonliteral + with -Wno-format. + +2013-05-10 Pedro Alves + + * remote.c (_initialize_remote): Fix spelling of + qXfer:traceframe-info:read packet in packet config command. + +2013-05-10 David Taylor + + PR remote/15455 + + * remote.c (remote_trace_set_readonly_regions): Do not overwrite + "QTro" at start of packet. + +2013-05-10 Joel Brobecker + + * solib-aix.c (solib_aix_relocate_section_addresses): + For the .bss section action, apply the same offset as + the .data section. + +2013-05-10 Joel Brobecker + + * solib-aix.c (solib_aix_relocate_section_addresses): + Remove FIXME comment. + +2013-05-10 Joel Brobecker + + PR tdep/15420: + * sol-thread.c (ps_lgetxregsize, ps_lgetxregs, ps_lsetxregs): + New functions, directly copied from sparc-sol-thread.c. + * sparc-sol-thread.c: Delete. + * configure.ac: Remove code handling sparc-solaris-thread.c. + * configure: Regenerate. + +2013-05-10 Phil Muldoon + + * stack.c (backtrace_command_1): Add "no-filters", and Python frame + filter logic. + (backtrace_command): Add "no-filters" option parsing. + (_initialize_stack): Alter help to reflect "no-filters" option. + * Makefile.in (SUBDIR_PYTHON_OBS): Add py-framefilter.o + (SUBDIR_PYTHON_SRCS): Add py-framefilter.c + (py-frame.o): Add target + * data-directory/Makefile.in (PYTHON_DIR): Add Python frame + filter files. + * python/python.h: Add new frame filter constants, and flag enum. + (apply_frame_filter): Add definition. + * python/python.c (apply_frame_filter): New non-Python + enabled function. + * python/py-utils.c (py_xdecref): New function. + (make_cleanup_py_xdecref): Ditto. + * python/py-objfile.c: Declare frame_filters dictionary. + (objfpy_dealloc): Add frame_filters dealloc. + (objfpy_new): Initialize frame_filters attribute. + (objfile_to_objfile_object): Ditto. + (objfpy_get_frame_filters): New function. + (objfpy_set_frame_filters): New function. + * python/py-progspace.c: Declare frame_filters dictionary. + (pspy_dealloc): Add frame_filters dealloc. + (pspy_new): Initialize frame_filters attribute. + (pspacee_to_pspace_object): Ditto. + (pspy_get_frame_filters): New function. + (pspy_set_frame_filters): New function. + * python/py-framefilter.c: New file. + * python/lib/gdb/command/frame_filters.py: New file. + * python/lib/gdb/frames.py: New file. + * python/lib/gdb/__init__.py: Initialize global frame_filters + dictionary + * python/lib/gdb/FrameDecorator.py: New file. + * python/lib/gdb/FrameIterator.py: New file. + * mi/mi-cmds.c (mi_cmds): Add frame filters command. + * mi/mi-cmds.h: Declare. + * mi/mi-cmd-stack.c (mi_cmd_stack_list_frames): Add + --no-frame-filter logic, and Python frame filter logic. + (stack_enable_frame_filters): New function. + (parse_no_frame_option): Ditto. + (mi_cmd_stack_list_frames): Add --no-frame-filter and Python frame + filter logic. + (mi_cmd_stack_list_locals): Ditto. + (mi_cmd_stack_list_args): Ditto. + (mi_cmd_stack_list_variables): Ditto. + * NEWS: Add frame filter note. + +2013-05-09 Doug Evans + + * symfile.c (syms_from_objfile_1): Delete args offsets, num_offsets. + All callers updated. + (syms_from_objfile): Ditto. Make static. + (symbol_file_add_with_addrs): Renamed from + symbol_file_add_with_addrs_or_offsets. Delete args offsets, + num_offsets. All callers updated. + * symfile.h (syms_from_objfile): Delete. + + * symfile.c (decrement_reading_symtab): Add assert. + (increment_reading_symtab): Ditto. + 2013-05-09 Joel Brobecker * source.c (forward_search_command): Replace call to getc diff --git a/gdb/Makefile.in b/gdb/Makefile.in index 2597ddb..69ec68b 100644 --- a/gdb/Makefile.in +++ b/gdb/Makefile.in @@ -288,6 +288,7 @@ SUBDIR_PYTHON_OBS = \ py-exitedevent.o \ py-finishbreakpoint.o \ py-frame.o \ + py-framefilter.o \ py-function.o \ py-gdb-readline.o \ py-inferior.o \ @@ -322,6 +323,7 @@ SUBDIR_PYTHON_SRCS = \ python/py-exitedevent.c \ python/py-finishbreakpoint.c \ python/py-frame.c \ + python/py-framefilter.c \ python/py-function.c \ python/py-gdb-readline.c \ python/py-inferior.c \ @@ -818,7 +820,8 @@ amd64-linux-tdep.h linespec.h i387-tdep.h mn10300-tdep.h \ sparc64-tdep.h monitor.h ppcobsd-tdep.h srec.h solib-pa64.h \ coff-pe-read.h parser-defs.h gdb_ptrace.h mips-linux-tdep.h \ m68k-tdep.h spu-tdep.h jv-lang.h environ.h solib-irix.h amd64-tdep.h \ -doublest.h regset.h hppa-tdep.h ppc-linux-tdep.h ppc64-tdep.h rs6000-tdep.h \ +doublest.h regset.h hppa-tdep.h ppc-linux-tdep.h ppc64-tdep.h \ +rs6000-tdep.h rs6000-aix-tdep.h \ common/gdb_locale.h common/gdb_dirent.h arch-utils.h trad-frame.h gnu-nat.h \ language.h nbsd-tdep.h solib-svr4.h \ macroexp.h ui-file.h regcache.h tracepoint.h i386-tdep.h \ @@ -2144,6 +2147,10 @@ py-frame.o: $(srcdir)/python/py-frame.c $(COMPILE) $(PYTHON_CFLAGS) $(srcdir)/python/py-frame.c $(POSTCOMPILE) +py-framefilter.o: $(srcdir)/python/py-framefilter.c + $(COMPILE) $(PYTHON_CFLAGS) $(srcdir)/python/py-framefilter.c + $(POSTCOMPILE) + py-function.o: $(srcdir)/python/py-function.c $(COMPILE) $(PYTHON_CFLAGS) $(srcdir)/python/py-function.c $(POSTCOMPILE) diff --git a/gdb/NEWS b/gdb/NEWS index 65284dc..7cd1646 100644 --- a/gdb/NEWS +++ b/gdb/NEWS @@ -3,6 +3,10 @@ *** Changes since GDB 7.6 +* Python scripting + + ** Frame filters and frame decorators have been added. + * New targets Nios II ELF nios2*-*-elf diff --git a/gdb/ada-lang.c b/gdb/ada-lang.c index 5823022..19bceb6 100644 --- a/gdb/ada-lang.c +++ b/gdb/ada-lang.c @@ -5842,7 +5842,7 @@ ada_make_symbol_completion_list (const char *text0, const char *word, struct block *b, *surrounding_static_block = 0; int i; struct block_iterator iter; - struct cleanup *cleanup = make_cleanup (null_cleanup, NULL); + struct cleanup *old_chain = make_cleanup (null_cleanup, NULL); gdb_assert (code == TYPE_CODE_UNDEF); @@ -5943,7 +5943,7 @@ ada_make_symbol_completion_list (const char *text0, const char *word, } } - do_cleanups (cleanup); + do_cleanups (old_chain); return completions; } diff --git a/gdb/cleanups.c b/gdb/cleanups.c index 6d6d78c..0f44ae4 100644 --- a/gdb/cleanups.c +++ b/gdb/cleanups.c @@ -276,7 +276,10 @@ save_final_cleanups (void) static void restore_my_cleanups (struct cleanup **pmy_chain, struct cleanup *chain) { - gdb_assert (*pmy_chain == SENTINEL_CLEANUP); + if (*pmy_chain != SENTINEL_CLEANUP) + internal_warning (__FILE__, __LINE__, + _("restore_my_cleanups has found a stale cleanup")); + *pmy_chain = chain; } diff --git a/gdb/common/filestuff.c b/gdb/common/filestuff.c index 68f66ca..e7af3a5 100644 --- a/gdb/common/filestuff.c +++ b/gdb/common/filestuff.c @@ -177,6 +177,33 @@ notice_open_fds (void) fdwalk (do_mark_open_fd, NULL); } +/* See filestuff.h. */ + +void +mark_fd_no_cloexec (int fd) +{ + do_mark_open_fd (NULL, fd); +} + +/* See filestuff.h. */ + +void +unmark_fd_no_cloexec (int fd) +{ + int i, val; + + for (i = 0; VEC_iterate (int, open_fds, i, val); ++i) + { + if (fd == val) + { + VEC_unordered_remove (int, open_fds, i); + return; + } + } + + gdb_assert_not_reached (_("fd not found in open_fds")); +} + /* Helper function for close_most_fds that closes the file descriptor if appropriate. */ diff --git a/gdb/common/filestuff.h b/gdb/common/filestuff.h index 0db33f0..b162a0c 100644 --- a/gdb/common/filestuff.h hooks/post-receive -- Repository for Project Archer.