From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 6470 invoked by alias); 9 Jul 2011 08:30:50 -0000 Received: (qmail 6447 invoked by uid 22791); 9 Jul 2011 08:30:46 -0000 X-SWARE-Spam-Status: No, hits=-1.5 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,T_TO_NO_BRKTS_FREEMAIL X-Spam-Check-By: sourceware.org Received: from mail-ew0-f41.google.com (HELO mail-ew0-f41.google.com) (209.85.215.41) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Sat, 09 Jul 2011 08:30:30 +0000 Received: by ewy9 with SMTP id 9so982557ewy.0 for ; Sat, 09 Jul 2011 01:30:29 -0700 (PDT) MIME-Version: 1.0 Received: by 10.213.107.15 with SMTP id z15mr955182ebo.114.1310200229108; Sat, 09 Jul 2011 01:30:29 -0700 (PDT) Received: by 10.213.4.207 with HTTP; Sat, 9 Jul 2011 01:30:29 -0700 (PDT) Date: Sat, 09 Jul 2011 13:09:00 -0000 Message-ID: Subject: PATCH From: Abhijit Halder To: gdb-patches@sourceware.org Content-Type: multipart/mixed; boundary=00504502d2343d9c5104a79ec354 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2011-07/txt/msg00266.txt.bz2 --00504502d2343d9c5104a79ec354 Content-Type: text/plain; charset=ISO-8859-1 Content-length: 681 There is no way to pass the output of a gdb command to a shell command. For example, something similar is not permitted: "(gdb) thread apply all bt | vim -". This kind of feature is quite helpful in a scenario where a program under debugger has 100s of threads running and one wants to search a particular pattern in stack-traces. I have implemented a feature which will allow one to pass the output of any gdb command to any shell command. 2011-07-09 Abhijit Halder * top.c (execute_command_to_pipe): New function. (execute_command): Update. * ui-file.c (gdb_modify_io): New function. * ui-file.h (gdb_modify_io): Add prototype. --00504502d2343d9c5104a79ec354 Content-Type: text/x-patch; charset=US-ASCII; name="gdb-enhancement.patch" Content-Disposition: attachment; filename="gdb-enhancement.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gpwbb3xe0 Content-length: 3555 ZGlmZiAtcnVwIHNyYy8vZ2RiL3RvcC5jIGRzdC8vZ2RiL3RvcC5jCi0tLSBz cmMvL2dkYi90b3AuYwkyMDExLTA2LTI4IDAwOjUxOjUwLjAwMDAwMDAwMCAr MDUzMAorKysgZHN0Ly9nZGIvdG9wLmMJMjAxMS0wNy0wOSAxMzoxMTo1Ny40 ODAwNDQ0MzYgKzA1MzAKQEAgLTQ4LDYgKzQ4LDcgQEAKICNpbmNsdWRlICJl dmVudC1sb29wLmgiCiAjaW5jbHVkZSAiZ2RidGhyZWFkLmgiCiAjaW5jbHVk ZSAicHl0aG9uL3B5dGhvbi5oIgorI2luY2x1ZGUgInVpLWZpbGUuaCIKIAog LyogcmVhZGxpbmUgaW5jbHVkZSBmaWxlcy4gICovCiAjaW5jbHVkZSAicmVh ZGxpbmUvcmVhZGxpbmUuaCIKQEAgLTM1OCw2ICszNTksMjAgQEAgcHJlcGFy ZV9leGVjdXRlX2NvbW1hbmQgKHZvaWQpCiAgIHJldHVybiBjbGVhbnVwOwog fQogCisKKy8qIFJ1biBleGVjdXRlX2NvbW1hbmQgZm9yIFAgYW5kIEZST01f VFRZLiBXcml0ZSBvdXRwdXQgaW4gcGlwZSwgCisgICBkbyBub3QgZGlzcGxh eSBpdCB0byB0aGUgc2NyZWVuLiAgKi8KKwordm9pZAorZXhlY3V0ZV9jb21t YW5kX3RvX3BpcGUgKGNoYXIgKnAsIGludCBmcm9tX3R0eSwgRklMRSAqcGlw ZSkKK3sKKyAgRklMRSAqZmlsZTsKKyAgCisgIGZpbGUgPSBnZGJfbW9kaWZ5 X2lvIChnZGJfc3Rkb3V0LCBwaXBlKTsKKyAgZXhlY3V0ZV9jb21tYW5kIChw LCBmcm9tX3R0eSk7CisgIHBpcGUgPSBnZGJfbW9kaWZ5X2lvIChnZGJfc3Rk b3V0LCBmaWxlKTsKKyAgcGNsb3NlIChwaXBlKTsKK30KIC8qIEV4ZWN1dGUg dGhlIGxpbmUgUCBhcyBhIGNvbW1hbmQsIGluIHRoZSBjdXJyZW50IHVzZXIg Y29udGV4dC4KICAgIFBhc3MgRlJPTV9UVFkgYXMgc2Vjb25kIGFyZ3VtZW50 IHRvIHRoZSBkZWZpbmluZyBmdW5jdGlvbi4gICovCiAKQEAgLTM2OCw3ICsz ODMsMTYgQEAgZXhlY3V0ZV9jb21tYW5kIChjaGFyICpwLCBpbnQgZnJvbV90 dHkpCiAgIHN0cnVjdCBjbWRfbGlzdF9lbGVtZW50ICpjOwogICBlbnVtIGxh bmd1YWdlIGZsYW5nOwogICBzdGF0aWMgaW50IHdhcm5lZCA9IDA7Ci0gIGNo YXIgKmxpbmU7CisgIGNoYXIgKmxpbmUsICpzaF9jbWQ7CisKKyAgaWYgKChz aF9jbWQgPSBzdHJjaHIocCwnfCcpKSAhPSBOVUxMKSAKKyAgICB7CisgICAg ICBGSUxFICpwaXBlOworICAgICAgKnNoX2NtZCsrID0gJ1wwJzsKKyAgICAg IHBpcGUgPSBwb3BlbiAoc2hfY21kLCAidyIpOworICAgICAgZXhlY3V0ZV9j b21tYW5kX3RvX3BpcGUgKHAsIGZyb21fdHR5LCBwaXBlKTsKKyAgICAgIHJl dHVybjsKKyAgICB9CiAKICAgY2xlYW51cCA9IHByZXBhcmVfZXhlY3V0ZV9j b21tYW5kICgpOwogCmRpZmYgLXJ1cCBzcmMvL2dkYi91aS1maWxlLmMgZHN0 Ly9nZGIvdWktZmlsZS5jCi0tLSBzcmMvL2dkYi91aS1maWxlLmMJMjAxMS0w NS0xNCAxMToxNDozNi4wMDAwMDAwMDAgKzA1MzAKKysrIGRzdC8vZ2RiL3Vp LWZpbGUuYwkyMDExLTA3LTA5IDEzOjE2OjUwLjQwNDA0NTIwOCArMDUzMApA QCAtNjE3LDYgKzYxNywyMSBAQCBzdHJ1Y3QgdWlfZmlsZSAqCiBzdGRpb19m aWxlb3BlbiAoRklMRSAqZmlsZSkKIHsKICAgcmV0dXJuIHN0ZGlvX2ZpbGVf bmV3IChmaWxlLCAwKTsKKworfQorCitGSUxFICoKK2dkYl9tb2RpZnlfaW8g KHN0cnVjdCB1aV9maWxlICpmaWxlLCBGSUxFICppb3N0cmVhbV9uZXcpCit7 CisgIEZJTEUgKmlvc3RyZWFtX29sZDsKKyAgc3RydWN0IHN0ZGlvX2ZpbGUg KnN0ZGlvID0gdWlfZmlsZV9kYXRhIChmaWxlKTsKKworICBpZiAoc3RkaW8t Pm1hZ2ljICE9ICZzdGRpb19maWxlX21hZ2ljKQorICAgIGludGVybmFsX2Vy cm9yIChfX0ZJTEVfXywgX19MSU5FX18sCisJCSAgICBfKCJzdGRpb19maWxl X2ZsdXNoOiBiYWQgbWFnaWMgbnVtYmVyIikpOworICBpb3N0cmVhbV9vbGQg PSBzdGRpby0+ZmlsZTsKKyAgc3RkaW8tPmZpbGUgPSBpb3N0cmVhbV9uZXc7 CisgIHJldHVybiBpb3N0cmVhbV9vbGQ7CiB9CiAKIHN0cnVjdCB1aV9maWxl ICoKZGlmZiAtcnVwIHNyYy8vZ2RiL3VpLWZpbGUuaCBkc3QvL2dkYi91aS1m aWxlLmgKLS0tIHNyYy8vZ2RiL3VpLWZpbGUuaAkyMDExLTA1LTEzIDIyOjU4 OjIwLjAwMDAwMDAwMCArMDUzMAorKysgZHN0Ly9nZGIvdWktZmlsZS5oCTIw MTEtMDctMDkgMTM6MTQ6MjEuNDg0MDQ0ODAzICswNTMwCkBAIC0xMjYsNiAr MTI2LDkgQEAgZXh0ZXJuIHN0cnVjdCB1aV9maWxlICpzdGRpb19maWxlb3Bl biAoRgogLyogT3BlbiBOQU1FIHJldHVybmluZyBhbiBTVERJTyBiYXNlZCBV SV9GSUxFLiAgKi8KIGV4dGVybiBzdHJ1Y3QgdWlfZmlsZSAqZ2RiX2ZvcGVu IChjaGFyICpuYW1lLCBjaGFyICptb2RlKTsKIAorLyogTW9kaWZ5IHRoZSBm aWxlIHBvaW50ZXIgb2YgYW4gU1RESU8gYmFzZWQgVUlfRklMRS4gKi8KK0ZJ TEUgKmdkYl9tb2RpZnlfaW8gKHN0cnVjdCB1aV9maWxlICpmaWxlLCBGSUxF ICppb3N0cmVhbV9uZXcpOworCiAvKiBDcmVhdGUgYSBmaWxlIHdoaWNoIHdy aXRlcyB0byBib3RoIE9ORSBhbmQgVFdPLiAgQ0xPU0VfT05FCiAgICBhbmQg Q0xPU0VfVFdPIGluZGljYXRlIHdoZXRoZXIgdGhlIG9yaWdpbmFsIGZpbGVz IHNob3VsZCBiZQogICAgY2xvc2VkIHdoZW4gdGhlIG5ldyBmaWxlIGlzIGNs b3NlZC4gICovCg== --00504502d2343d9c5104a79ec354--