From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 59620 invoked by alias); 15 Apr 2016 03:02:44 -0000 Mailing-List: contact gdb-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-owner@sourceware.org Received: (qmail 59608 invoked by uid 89); 15 Apr 2016 03:02:43 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.2 required=5.0 tests=AWL,BAYES_00,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,SPF_PASS autolearn=ham version=3.3.2 spammy=$10, recognizing X-HELO: mail-qg0-f49.google.com Received: from mail-qg0-f49.google.com (HELO mail-qg0-f49.google.com) (209.85.192.49) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-GCM-SHA256 encrypted) ESMTPS; Fri, 15 Apr 2016 03:02:42 +0000 Received: by mail-qg0-f49.google.com with SMTP id j35so74712660qge.0 for ; Thu, 14 Apr 2016 20:02:42 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:to:from:subject:message-id:date:user-agent :mime-version:content-transfer-encoding; bh=nwbggKlSuoImiHetERb6u5o4FB33u0giswKhyOVpwpE=; b=NX6c835UQU+B2XSocNS1kvMD/Uy6Qewe0J7FjTTJKrZSQdb4a74gFrxPkAgEbgATQK 0KjsnlV+w0cu4wpKbfMkoJLvGiqKrQM2zpH/cklN3oniLzMqcia3WQrd/GwUQGOfsoPd ouT1HAvz49z6Lzl6cSbBfDtaBBB5m76IxwhI+8qbddDIHsoKMAbpSUIUjS6+IphfvcPi o1ailiFyx9z8wdXVceHN6HD038EWzYjvQAMZHcztXtbpZW9qF6zNoIfS51Ja92lPT32Q W2CwkVKeyVPxboDjNw6qUXKz154kbj4LGpPrY+uTXILk7rVVd1UQ5t6AsdPLjdgyDlmI Kweg== X-Gm-Message-State: AOPr4FWNgj6TztJQilTaPXSrHXtC5STVgJv19oE85yn6EmVVC3kbJiuhxhmEvkYFaNsIkQ== X-Received: by 10.140.36.231 with SMTP id p94mr22073740qgp.79.1460689360390; Thu, 14 Apr 2016 20:02:40 -0700 (PDT) Received: from [192.168.1.143] (cpe-66-108-29-119.nyc.res.rr.com. [66.108.29.119]) by smtp.googlemail.com with ESMTPSA id b85sm19424727qhc.23.2016.04.14.20.02.39 for (version=TLSv1/SSLv3 cipher=OTHER); Thu, 14 Apr 2016 20:02:39 -0700 (PDT) To: gdb@sourceware.org From: Thomas Nyberg Subject: Casting an object to another type while debugging? Message-ID: <571059D1.3010308@gmail.com> Date: Fri, 15 Apr 2016 03:02:00 -0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.6.0 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-IsSubscribed: yes X-SW-Source: 2016-04/txt/msg00019.txt.bz2 Hello, Please yell and scream if I'm posting this to the wrong list (and then point me in the right direction :) ). To make my situation specific, I'm stepping through the cpython implementation of the python interpreter using gdb. The implementation tends to pass around all objects as type (PyObject *). I know that a certain object can be cast to (PyUnicode_Type *) and so I've tried to do this to print out the structure, but without success. Here are some examples: ``` (gdb) print name $10 = (PyObject *) 0x7ffff7ee3298 (gdb) print *name $11 = {ob_refcnt = 2, ob_type = 0x8a1a00 } (gdb) print name $12 = (PyObject *) 0x7ffff7ee3298 (gdb) print *name $13 = {ob_refcnt = 2, ob_type = 0x8a1a00 } (gdb) print (void *) name $14 = (void *) 0x7ffff7ee3298 (gdb) print * (void *) name Attempt to dereference a generic pointer. (gdb) print * (PyUnicode_Type *) name A syntax error in expression, near `) name'. (gdb) print * (PyUnicode_Typ *) name No symbol "PyUnicode_Typ" in current context. (gdb) print (PyUnicode_Type *) name A syntax error in expression, near `) name'. (gdb) print ((PyUnicode_Type *) name) A syntax error in expression, near `) name)'. (gdb) print ((PyUnicode_Type *) name); A syntax error in expression, near `) name);'. ``` So from this it seems to me like it's recognizing the PyUnicode_Type fine, but I just get this weird syntax error. My google-foo hasn't worked out that well so far in resolving this. What am I doing wrong? Am I misunderstanding how casting works? Thanks for any help! Cheers, Thomas