惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

H
Hackread – Cybersecurity News, Data Breaches, AI and More
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - 聂微东
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
V
Visual Studio Blog
PCI Perspectives
PCI Perspectives
I
InfoQ
罗磊的独立博客
云风的 BLOG
云风的 BLOG
U
Unit 42
The Last Watchdog
The Last Watchdog
Google Online Security Blog
Google Online Security Blog
T
Troy Hunt's Blog
E
Exploit-DB.com RSS Feed
Help Net Security
Help Net Security
H
Hacker News: Front Page
C
Comments on: Blog
Engineering at Meta
Engineering at Meta
W
WeLiveSecurity
N
News | PayPal Newsroom
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
S
Security Archives - TechRepublic
Hacker News - Newest:
Hacker News - Newest: "LLM"
Hacker News: Ask HN
Hacker News: Ask HN
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
www.infosecurity-magazine.com
www.infosecurity-magazine.com
T
The Exploit Database - CXSecurity.com
Google DeepMind News
Google DeepMind News
I
Intezer
P
Privacy International News Feed
Cisco Talos Blog
Cisco Talos Blog
P
Proofpoint News Feed
P
Privacy & Cybersecurity Law Blog
Project Zero
Project Zero
N
News and Events Feed by Topic
Simon Willison's Weblog
Simon Willison's Weblog
T
Threat Research - Cisco Blogs
AI
AI
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
L
LINUX DO - 热门话题
S
Security Affairs
V
V2EX - 技术
V
Vulnerabilities – Threatpost
Security Latest
Security Latest
SecWiki News
SecWiki News
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Webroot Blog
Webroot Blog
H
Heimdal Security Blog
T
Threatpost
A
Arctic Wolf

Hacker News

Introducing Claude Opus 4.7 Qwen Studio The Future of Everything is Lies, I Guess: Where Do We Go From Here? GitHub - SeanFDZ/macmind: Single-layer transformer in HyperTalk for the classic Macintosh Show HN: Agent-cache – Multi-tier LLM/tool/session caching for Valkey and Redis Ancient DNA reveals pervasive directional selection across West Eurasia [pdf] Moving a large-scale metrics pipeline from StatsD to OpenTelemetry / Prometheus GitHub - Nightmare-Eclipse/RedSun: The Red Sun vulnerability repository GitHub - SethPyle376/hiraeth: Local AWS emulator focused on fast integration testing, with SQS support, SQLite-backed state, and a debug-friendly web UI. GitHub - macOS26/Agent: Any AI, replaces Claude Code, Cursor, OpenClaw. Over 18 LLM providers (Claude, OpenAI, Gemini, Ollama, Zai, HF, Qwen) wired into a native Mac app that writes code, builds Xcode projects, bumps versions, manages git, automates Safari, use AppleScript, JS or Accessibility, extend Agent! w/ MCP Servers, run tasks from your iPhone via Messages. YouTube now lets you turn off Shorts I Made a Terminal Pager Burgers | マクドナルド公式 Commands — HackerNews CLI documentation ChatGPT for Excel PiCore - Raspberry Pi Port of Tiny Core Linux Live Nation illegally monopolized ticketing market, jury finds Google Broke Its Promise to Me. Now ICE Has My Data. Founding Engineer at Adaptional | Y Combinator CRISPR takes important step toward silencing Down syndrome’s extra chromosome Show HN: Libretto – Making AI browser automations deterministic US v. Heppner (S.D.N.Y. 2026) no attorney-client privilege for AI chats [pdf] Unexpected €54k billing spike in 13 hours: Firebase browser key without API restrictions used for Gemini requests Retrofitting JIT Compilers into C Interpreters IPv6 traffic crosses the 50% mark The Accursèd Alphabetical Clock Cybersecurity Looks Like Proof of Work Now Fragments: April 14 Cal.com Goes Closed Source: Why AI Security Is Forcing Our Decision | Cal.com - Scheduling Software for Online Bookings Laravel raised money and now injects ads directly into your agent When moving fast, talking is the first thing to break Too much discussion of the XOR swap trick Introduction to Spherical Harmonics for Graphics Programmers The Grand Line Building a Z-Machine in the worst possible language High-Level Rust: Getting 80% of the Benefits with 20% of the Pain GitHub - duguyue100/midnight-captain: Inspired by Midnight Commander, tailored to my taste. How to build a `git diff` driver · Jamie Tanna | Software Engineer Center for Responsible, Decentralized Intelligence at Berkeley The Local Universe’s Expansion Rate Is Clearer Than Ever, but Still Doesn’t Add Up - A new synthesis of astronomical measurements confirms a persistent mismatch that could point to physics beyond current models The air throughout our homes is infused with microplastics. But there are things you can do to breathe less of them The disturbing white paper Red Hat is trying to erase from the internet – OSnews The Future of Everything is Lies, I Guess: Annoyances ‘Abhorrent’: the inside story of the Polymarket gamblers betting millions on war Productive procrastination — Max van IJsselmuiden maps, territory and LMs 447 Terabytes per Square Centimetre at Zero Retention Energy: Non-Volatile Memory at the Atomic Scale on Fluorographane Show HN: Pardonned.com – A searchable database of US Pardons 20 Years on AWS and Never Not My Job The Seasons are Wrong Artemis II crew splashes down near San Diego after historic moon mission We gave an AI a 3 year retail lease in SF and asked it to make a profit | Andon Labs How a dancer with ALS used brainwaves to perform live On filing the corners off my MacBooks Installing every* Firefox extension OpenClaw’s memory is unreliable, and you don’t know when it will break Steve Blank Nowhere Is Safe Chimpanzees in Uganda locked in vicious 'civil war', say researchers watgo - a WebAssembly Toolkit for Go linux/Documentation/process/coding-assistants.rst at master · torvalds/linux GitHub - callumlocke/json-formatter: Makes JSON easy to read. Founding Product Engineer at Bild AI | Y Combinator A compelling title that is cryptic enough to get you to take action on it GitHub - Keychron/Keychron-Keyboards-Hardware-Design: Industrial design files for Keychron keyboards and mice. 100+ models with CAD assets in STEP, DXF, DWG, and PDF. Source-available, with commercial use allowed for original compatible accessories within the license terms. [ANNOUNCE] WireGuardNT v0.11 and WireGuard for Windows v0.6 Released 1D-Chess Helium Is Hard to Replace Cooperative Vectors Introduction | Evolve Keeping a Postgres queue healthy — PlanetScale Our response to the Axios developer tool compromise Do Americans read print books, e-books or audiobooks more? The Zettelkasten Method in Obsidian: A Practical Setup Guide Artemis II Is Competency Porn and We Are Starving For It WeakC4 Flight Viz — Cockpit View A Mexican surveillance giant you’ve never heard of is now watching the U.S. border Surelock: Deadlock-Free Mutexes for Rust RISC-V 101 – what is it and what does it mean for Canonical? | Ubuntu The Problem That Built an Industry How Much Linear Memory Access Is Enough? | Solidean Investigating Split Locks on x86-64 Simplest hash functions Sybilproof reputation mechanisms (2005) [pdf] What is a property? How Complex is my Code? Static code analysis in Kotlin — tools overview Toffoli gates are all you need PGLite evangelism dcmake: a new CMake debugger UI Clojure on Fennel part one: Persistent Data Structures Fragments: April 2 Python Release Python install manager 26.1 The Life and Death of the Book Review - Liberties Bitcoin miners are losing $19,000 on every BTC produced as difficulty drops 7.8% God sleeps in the minerals Building slogbox Apple Silicon and Virtual Machines: Beating the 2 VM Limit Who was “Not Even Wrong” first? Pokemon Evolution Vs Darwinian Evolution The APL Programming Language Source Code
The LD_DEBUG environment variable
Bojan Nikolic · 2012-04-23 · via Hacker News

Originally published 23 April 2012, updated 10 September 2019 (add link to troubleshooting tool), updated 18 October 2019 (moved to Jekyll), updated 3 April 2023 with links to other tools

Development of large systems using many shared (dynamically) loaded libraries can sometimes lead to some frustrating bugs that are difficult to diagnose. These bugs often arise because there a few different versions of libraries on the system and the “wrong” version gets loaded instead of the one the developer used wanted.

Note You may also find of use my online tool for diagnosing linker problems on Linux implemented as an expert system. It is being expanded at the time of writing this but probably useful already.

I used to often debug these problems reasonably efficiently using the strace command (man strace) and checking which libraries are getting accessed. However, there is a much more efficient but perhaps not very well known way of debugging shared library loading problems: the LD_DEBUG environment variable.

If the LD_DEBUG variable is set then the Linux dynamic linker will dump debug information which can be used to resolve most loading problems very quickly. To see the available options just run any program with the variable set to help, i.e.:

LD_DEBUG=help cat
Valid options for the LD_DEBUG environment variable are:

  libs        display library search paths
  reloc       display relocation processing
  files       display progress for input file
  symbols     display symbol table processing
  bindings    display information about symbol binding
  versions    display version dependencies
  all         all previous options combined
  statistics  display relocation statistics
  unused      determined unused DSOs
  help        display this help message and exit

To direct the debugging output into a file instead of standard output
a filename can be specified using the LD_DEBUG_OUTPUT environment
variable.

Note There are many other useful tools to deal with linking issues:

  1. The strace program provides insight into all system calls, including searching, opening dynamic libraries
  2. The ldd program resolves dynamic library dependencies
  3. The objdump -x YOURFILE | grep NEEDED command lists the records in the program or library showing which other libraries are needed
  4. The patchelf program makes it easy to change the rpath of an ELF executable, changing the built-in search order
  5. The LD_PRELOAD environment allows easy substitution of dynamic libraries

Need further advice? With over 20 years of experience we are uniquely placed to help – contact us at webs@bnikolic.co.uk

Note This variable is available Linux only. On MS Windows similar information can be obtained by enabling “Show Loader Snaps” (https://abitofscotland.wordpress.com/2019/12/20/dll-load-failure/) using the gflags.exe program to enable this and then using windbg to view the log. For example:

  1. Install Windows SDK for gflags and windbg winget install Microsoft.WindowsSDK.10.0.19041 (or download from Microsoft website )
  2. Enable ShowLoaderSnaps for an executable. Example: to enable for notepad.exe for example do in Powershell &"C:\Program Files (x86)\Windows Kits\10\Debuggers\x64\gflags.exe" /i notepad.exe +sls
  3. Execute notepad.exe under WinDbg app. Detailed DLL loading log will be displayed

And here is an example run on my laptop:

 LD_DEBUG=all cat
 28504:	
 28504:	file=libc.so.6 [0];  needed by cat [0]
 28504:	find library=libc.so.6 [0]; searching
 28504:	 search path=/home/bnikolic/s/lib/tls/x86_64:/home/bnikolic/s/lib/tls:/home/bnikolic/s/lib/x86_64:/home/bnikolic/s/lib:tls/x86_64:tls:x86_64::/home/bnikolic/d/p/R-2.14.1bin/lib/R/lib/tls/x86_64:/home/bnikolic/d/p/R-2.14.1bin/lib/R/lib/tls:/home/bnikolic/d/p/R-2.14.1bin/lib/R/lib/x86_64:/home/bnikolic/d/p/R-2.14.1bin/lib/R/lib		(LD_LIBRARY_PATH)
 28504:	  trying file=/home/bnikolic/s/lib/tls/x86_64/libc.so.6
 28504:	  trying file=/home/bnikolic/s/lib/tls/libc.so.6
 28504:	  trying file=/home/bnikolic/s/lib/x86_64/libc.so.6
 28504:	  trying file=/home/bnikolic/s/lib/libc.so.6
 28504:	  trying file=tls/x86_64/libc.so.6
 28504:	  trying file=tls/libc.so.6
 28504:	  trying file=x86_64/libc.so.6
 28504:	  trying file=libc.so.6
 28504:	  trying file=/home/bnikolic/d/p/R-2.14.1bin/lib/R/lib/tls/x86_64/libc.so.6
 28504:	  trying file=/home/bnikolic/d/p/R-2.14.1bin/lib/R/lib/tls/libc.so.6
 28504:	  trying file=/home/bnikolic/d/p/R-2.14.1bin/lib/R/lib/x86_64/libc.so.6
 28504:	  trying file=/home/bnikolic/d/p/R-2.14.1bin/lib/R/lib/libc.so.6
 28504:	 search cache=/etc/ld.so.cache
 28504:	  trying file=/lib/x86_64-linux-gnu/libc.so.6
 28504:	
 28504:	file=libc.so.6 [0];  generating link map
 28504:	  dynamic: 0x00007fc38e525b40  base: 0x00007fc38e18c000   size: 0x00000000003a0368
 28504:	    entry: 0x00007fc38e1ad420  phdr: 0x00007fc38e18c040  phnum:                 10
 28504:	
 28504:	checking for version `GLIBC_2.4' in file /lib/x86_64-linux-gnu/libc.so.6 [0] required by file cat [0]
 28504:	checking for version `GLIBC_2.3' in file /lib/x86_64-linux-gnu/libc.so.6 [0] required by file cat [0]
 28504:	checking for version `GLIBC_2.3.4' in file /lib/x86_64-linux-gnu/libc.so.6 [0] required by file cat [0]
 28504:	checking for version `GLIBC_2.2.5' in file /lib/x86_64-linux-gnu/libc.so.6 [0] required by file cat [0]
 28504:	checking for version `GLIBC_2.3' in file /lib64/ld-linux-x86-64.so.2 [0] required by file /lib/x86_64-linux-gnu/libc.so.6 [0]
 28504:	checking for version `GLIBC_PRIVATE' in file /lib64/ld-linux-x86-64.so.2 [0] required by file /lib/x86_64-linux-gnu/libc.so.6 [0]
 28504:	
 28504:	relocation processing: /lib/x86_64-linux-gnu/libc.so.6 (lazy)
 28504:	symbol=_res;  lookup in file=cat [0]
 28504:	symbol=_res;  lookup in file=/lib/x86_64-linux-gnu/libc.so.6 [0]
 28504:	binding file /lib/x86_64-linux-gnu/libc.so.6 [0] to /lib/x86_64-linux-gnu/libc.so.6 [0]: normal symbol `_res' [GLIBC_2.2.5]
 28504:	symbol=_IO_file_close;  lookup in file=cat [0]
 28504:	symbol=_IO_file_close;  lookup in file=/lib/x86_64-linux-gnu/libc.so.6 [0]
 28504:	binding file /lib/x86_64-linux-gnu/libc.so.6 [0] to /lib/x86_64-linux-gnu/libc.so.6 [0]: normal symbol `_IO_file_close' [GLIBC_2.2.5]
 28504:	symbol=stderr;  lookup in file=cat [0]
 28504:	binding file /lib/x86_64-linux-gnu/libc.so.6 [0] to cat [0]: normal symbol `stderr' [GLIBC_2.2.5]
 28504:	symbol=error_one_per_line;  lookup in file=cat [0]
 28504:	symbol=error_one_per_line;  lookup in file=/lib/x86_64-linux-gnu/libc.so.6 [0]
 28504:	binding file /lib/x86_64-linux-gnu/libc.so.6 [0] to /lib/x86_64-linux-gnu/libc.so.6 [0]: normal symbol `error_one_per_line' [GLIBC_2.2.5]
 28504:	symbol=__malloc_initialize_hook;  lookup in file=cat [0]
 28504:	symbol=__malloc_initialize_hook;  lookup in file=/lib/x86_64-linux-gnu/libc.so.6 [0]
 28504:	binding file /lib/x86_64-linux-gnu/libc.so.6 [0] to /lib/x86_64-linux-gnu/libc.so.6 [0]: normal symbol `__malloc_initialize_hook' [GLIBC_2.2.5]
 28504:	symbol=__morecore;  lookup in file=cat [0]
 28504:	symbol=__morecore;  lookup in file=/lib/x86_64-linux-gnu/libc.so.6 [0]
 28504:	binding file /lib/x86_64-linux-gnu/libc.so.6 [0] to /lib/x86_64-linux-gnu/libc.so.6 [0]: normal symbol `__morecore' [GLIBC_2.2.5]
 28504:	symbol=__key_encryptsession_pk_LOCAL;  lookup in file=cat [0]
 28504:	symbol=__key_encryptsession_pk_LOCAL;  lookup in file=/lib/x86_64-linux-gnu/libc.so.6 [0]
 28504:	binding file /lib/x86_64-linux-gnu/libc.so.6 [0] to /lib/x86_64-linux-gnu/libc.so.6 [0]: normal symbol `__key_encryptsession_pk_LOCAL' [GLIBC_2.2.5]
 28504:	symbol=__progname_full;  lookup in file=cat [0]
 28504:	binding file /lib/x86_64-linux-gnu/libc.so.6 [0] to cat [0]: normal symbol `__progname_full' [GLIBC_2.2.5]
 28504:	symbol=__ctype32_tolower;  lookup in file=cat [0]
 28504:	symbol=__ctype32_tolower;  lookup in file=/lib/x86_64-linux-gnu/libc.so.6 [0]
 28504:	binding file /lib/x86_64-linux-gnu/libc.so.6 [0] to /lib/x86_64-linux-gnu/libc.so.6 [0]: normal symbol `__ctype32_tolower' [GLIBC_2.2.5]
 28504:	symbol=__key_gendes_LOCAL;  lookup in file=cat [0]
 28504:	symbol=__key_gendes_LOCAL;  lookup in file=/lib/x86_64-linux-gnu/libc.so.6 [0]
 28504:	binding file /lib/x86_64-linux-gnu/libc.so.6 [0] to /lib/x86_64-linux-gnu/libc.so.6 [0]: normal symbol `__key_gendes_LOCAL' [GLIBC_2.2.5]
 28504:	symbol=_environ;  lookup in file=cat [0]
 28504:	symbol=_environ;  lookup in file=/lib/x86_64-linux-gnu/libc.so.6 [0]
 28504:	binding file /lib/x86_64-linux-gnu/libc.so.6 [0] to /lib/x86_64-linux-gnu/libc.so.6 [0]: normal symbol `_environ' [GLIBC_2.2.5]
 28504:	symbol=_rtld_global;  lookup in file=cat [0]
 28504:	symbol=_rtld_global;  lookup in file=/lib/x86_64-linux-gnu/libc.so.6 [0]
 28504:	symbol=_rtld_global;  lookup in file=/lib64/ld-linux-x86-64.so.2 [0]
 28504:	binding file /lib/x86_64-linux-gnu/libc.so.6 [0] to /lib64/ld-linux-x86-64.so.2 [0]: normal symbol `_rtld_global' [GLIBC_PRIVATE]
 28504:	symbol=__progname;  lookup in file=cat [0]
 28504:	binding file /lib/x86_64-linux-gnu/libc.so.6 [0] to cat [0]: normal symbol `__progname' [GLIBC_2.2.5]
 28504:	symbol=argp_err_exit_status;  lookup in file=cat [0]
 28504:	symbol=argp_err_exit_status;  lookup in file=/lib/x86_64-linux-gnu/libc.so.6 [0]
 28504:	binding file /lib/x86_64-linux-gnu/libc.so.6 [0] to /lib/x86_64-linux-gnu/libc.so.6 [0]: normal symbol `argp_err_exit_status' [GLIBC_2.2.5]
 28504:	symbol=mallwatch;  lookup in file=cat [0]
 28504:	symbol=mallwatch;  lookup in file=/lib/x86_64-linux-gnu/libc.so.6 [0]
 28504:	binding file /lib/x86_64-linux-gnu/libc.so.6 [0] to /lib/x86_64-linux-gnu/libc.so.6 [0]: normal symbol `mallwatch' [GLIBC_2.2.5]
 28504:	symbol=__rcmd_errstr;  lookup in file=cat [0]
 28504:	symbol=__rcmd_errstr;  lookup in file=/lib/x86_64-linux-gnu/libc.so.6 [0]
 28504:	binding file /lib/x86_64-linux-gnu/libc.so.6 [0] to /lib/x86_64-linux-gnu/libc.so.6 [0]: normal symbol `__rcmd_errstr' [GLIBC_2.2.5]
 28504:	symbol=svcauthdes_stats;  lookup in file=cat [0]
 28504:	symbol=svcauthdes_stats;  lookup in file=/lib/x86_64-linux-gnu/libc.so.6 [0]
 28504:	binding file /lib/x86_64-linux-gnu/libc.so.6 [0] to /lib/x86_64-linux-gnu/libc.so.6 [0]: normal symbol `svcauthdes_stats' [GLIBC_2.2.5]
 28504:	symbol=__libc_enable_secure;  lookup in file=cat [0]
 28504:	symbol=__libc_enable_secure;  lookup in file=/lib/x86_64-linux-gnu/libc.so.6 [0]
 28504:	symbol=__libc_enable_secure;  lookup in file=/lib64/ld-linux-x86-64.so.2 [0]
 28504:	binding file /lib/x86_64-linux-gnu/libc.so.6 [0] to /lib64/ld-linux-x86-64.so.2 [0]: normal symbol `__libc_enable_secure' [GLIBC_PRIVATE]
 28504:	symbol=_res_hconf;  lookup in file=cat [0]
 28504:	symbol=_res_hconf;  lookup in file=/lib/x86_64-linux-gnu/libc.so.6 [0]
 28504:	binding file /lib/x86_64-linux-gnu/libc.so.6 [0] to /lib/x86_64-linux-gnu/libc.so.6 [0]: normal symbol `_res_hconf' [GLIBC_2.2.5]
 28504:	symbol=malloc;  lookup in file=cat [0]
 28504:	symbol=malloc;  lookup in file=/lib/x86_64-linux-gnu/libc.so.6 [0]
 28504:	binding file /lib/x86_64-linux-gnu/libc.so.6 [0] to /lib/x86_64-linux-gnu/libc.so.6 [0]: normal symbol `malloc' [GLIBC_2.2.5]
 28504:	symbol=getdate_err;  lookup in file=cat [0]
 28504:	symbol=getdate_err;  lookup in file=/lib/x86_64-linux-gnu/libc.so.6 [0]
 28504:	binding file /lib/x86_64-linux-gnu/libc.so.6 [0] to /lib/x86_64-linux-gnu/libc.so.6 [0]: normal symbol `getdate_err' [GLIBC_2.2.5]
 28504:	symbol=__tzname;  lookup in file=cat [0]
 28504:	symbol=__tzname;  lookup in file=/lib/x86_64-linux-gnu/libc.so.6 [0]
 28504:	binding file /lib/x86_64-linux-gnu/libc.so.6 [0] to /lib/x86_64-linux-gnu/libc.so.6 [0]: normal symbol `__tzname' [GLIBC_2.2.5]
 28504:	symbol=__timezone;  lookup in file=cat [0]
 28504:	symbol=__timezone;  lookup in file=/lib/x86_64-linux-gnu/libc.so.6 [0]
 28504:	binding file /lib/x86_64-linux-gnu/libc.so.6 [0] to /lib/x86_64-linux-gnu/libc.so.6 [0]: normal symbol `__timezone' [GLIBC_2.2.5]
 28504:	symbol=_rtld_global_ro;  lookup in file=cat [0]
 28504:	symbol=_rtld_global_ro;  lookup in file=/lib/x86_64-linux-gnu/libc.so.6 [0]
 28504:	symbol=_rtld_global_ro;  lookup in file=/lib64/ld-linux-x86-64.so.2 [0]
 28504:	binding file /lib/x86_64-linux-gnu/libc.so.6 [0] to /lib64/ld-linux-x86-64.so.2 [0]: normal symbol `_rtld_global_ro' [GLIBC_PRIVATE]
 28504:	symbol=optarg;  lookup in file=cat [0]
 28504:	symbol=optarg;  lookup in file=/lib/x86_64-linux-gnu/libc.so.6 [0]
 28504:	binding file /lib/x86_64-linux-gnu/libc.so.6 [0] to /lib/x86_64-linux-gnu/libc.so.6 [0]: normal symbol `optarg' [GLIBC_2.2.5]
 28504:	symbol=__ctype_tolower;  lookup in file=cat [0]
 28504:	symbol=__ctype_tolower;  lookup in file=/lib/x86_64-linux-gnu/libc.so.6 [0]
 28504:	binding file /lib/x86_64-linux-gnu/libc.so.6 [0] to /lib/x86_64-linux-gnu/libc.so.6 [0]: normal symbol `__ctype_tolower' [GLIBC_2.2.5]
 28504:	symbol=__ctype_toupper;  lookup in file=cat [0]
 28504:	symbol=__ctype_toupper;  lookup in file=/lib/x86_64-linux-gnu/libc.so.6 [0]
 28504:	binding file /lib/x86_64-linux-gnu/libc.so.6 [0] to /lib/x86_64-linux-gnu/libc.so.6 [0]: normal symbol `__ctype_toupper' [GLIBC_2.2.5]
 28504:	symbol=svc_max_pollfd;  lookup in file=cat [0]
 28504:	symbol=svc_max_pollfd;  lookup in file=/lib/x86_64-linux-gnu/libc.so.6 [0]
 28504:	binding file /lib/x86_64-linux-gnu/libc.so.6 [0] to /lib/x86_64-linux-gnu/libc.so.6 [0]: normal symbol `svc_max_pollfd' [GLIBC_2.2.5]
 28504:	symbol=__ctype_b;  lookup in file=cat [0]
 28504:	symbol=__ctype_b;  lookup in file=/lib/x86_64-linux-gnu/libc.so.6 [0]
 28504:	binding file /lib/x86_64-linux-gnu/libc.so.6 [0] to /lib/x86_64-linux-gnu/libc.so.6 [0]: normal symbol `__ctype_b' [GLIBC_2.2.5]
 28504:	symbol=argp_program_version_hook;  lookup in file=cat [0]
 28504:	symbol=argp_program_version_hook;  lookup in file=/lib/x86_64-linux-gnu/libc.so.6 [0]
 28504:	binding file /lib/x86_64-linux-gnu/libc.so.6 [0] to /lib/x86_64-linux-gnu/libc.so.6 [0]: normal symbol `argp_program_version_hook' [GLIBC_2.2.5]
 28504:	symbol=__after_morecore_hook;  lookup in file=cat [0]
 28504:	symbol=__after_morecore_hook;  lookup in file=/lib/x86_64-linux-gnu/libc.so.6 [0]
 28504:	binding file /lib/x86_64-linux-gnu/libc.so.6 [0] to /lib/x86_64-linux-gnu/libc.so.6 [0]: normal symbol `__after_morecore_hook' [GLIBC_2.2.5]
 28504:	symbol=__environ;  lookup in file=cat [0]
 28504:	symbol=__environ;  lookup in file=/lib/x86_64-linux-gnu/libc.so.6 [0]
 28504:	binding file /lib/x86_64-linux-gnu/libc.so.6 [0] to /lib/x86_64-linux-gnu/libc.so.6 [0]: normal symbol `__environ' [GLIBC_2.2.5]
 28504:	symbol=__ctype32_b;  lookup in file=cat [0]
 28504:	symbol=__ctype32_b;  lookup in file=/lib/x86_64-linux-gnu/libc.so.6 [0]
 28504:	binding file /lib/x86_64-linux-gnu/libc.so.6 [0] to /lib/x86_64-linux-gnu/libc.so.6 [0]: normal symbol `__ctype32_b' [GLIBC_2.2.5]
 28504:	symbol=__curbrk;  lookup in file=cat [0]
 28504:	symbol=__curbrk;  lookup in file=/lib/x86_64-linux-gnu/libc.so.6 [0]
 28504:	binding file /lib/x86_64-linux-gnu/libc.so.6 [0] to /lib/x86_64-linux-gnu/libc.so.6 [0]: normal symbol `__curbrk' [GLIBC_2.2.5]
 28504:	symbol=argp_program_version;  lookup in file=cat [0]
 28504:	symbol=argp_program_version;  lookup in file=/lib/x86_64-linux-gnu/libc.so.6 [0]
 28504:	binding file /lib/x86_64-linux-gnu/libc.so.6 [0] to /lib/x86_64-linux-gnu/libc.so.6 [0]: normal symbol `argp_program_version' [GLIBC_2.2.5]
 28504:	symbol=__daylight;  lookup in file=cat [0]
 28504:	symbol=__daylight;  lookup in file=/lib/x86_64-linux-gnu/libc.so.6 [0]
 28504:	binding file /lib/x86_64-linux-gnu/libc.so.6 [0] to /lib/x86_64-linux-gnu/libc.so.6 [0]: normal symbol `__daylight' [GLIBC_2.2.5]
 28504:	symbol=__memalign_hook;  lookup in file=cat [0]
 28504:	symbol=__memalign_hook;  lookup in file=/lib/x86_64-linux-gnu/libc.so.6 [0]
 28504:	binding file /lib/x86_64-linux-gnu/libc.so.6 [0] to /lib/x86_64-linux-gnu/libc.so.6 [0]: normal symbol `__memalign_hook' [GLIBC_2.2.5]
 28504:	symbol=__malloc_hook;  lookup in file=cat [0]
 28504:	symbol=__malloc_hook;  lookup in file=/lib/x86_64-linux-gnu/libc.so.6 [0]
 28504:	binding file /lib/x86_64-linux-gnu/libc.so.6 [0] to /lib/x86_64-linux-gnu/libc.so.6 [0]: normal symbol `__malloc_hook' [GLIBC_2.2.5]
 28504:	symbol=__free_hook;  lookup in file=cat [0]
 28504:	symbol=__free_hook;  lookup in file=/lib/x86_64-linux-gnu/libc.so.6 [0]
 28504:	binding file /lib/x86_64-linux-gnu/libc.so.6 [0] to /lib/x86_64-linux-gnu/libc.so.6 [0]: normal symbol `__free_hook' [GLIBC_2.2.5]
 28504:	symbol=svc_pollfd;  lookup in file=cat [0]
 28504:	symbol=svc_pollfd;  lookup in file=/lib/x86_64-linux-gnu/libc.so.6 [0]
 28504:	binding file /lib/x86_64-linux-gnu/libc.so.6 [0] to /lib/x86_64-linux-gnu/libc.so.6 [0]: normal symbol `svc_pollfd' [GLIBC_2.2.5]
 28504:	symbol=_nl_domain_bindings;  lookup in file=cat [0]
 28504:	symbol=_nl_domain_bindings;  lookup in file=/lib/x86_64-linux-gnu/libc.so.6 [0]
 28504:	binding file /lib/x86_64-linux-gnu/libc.so.6 [0] to /lib/x86_64-linux-gnu/libc.so.6 [0]: normal symbol `_nl_domain_bindings' [GLIBC_2.2.5]
 28504:	symbol=_nl_msg_cat_cntr;  lookup in file=cat [0]
 28504:	symbol=_nl_msg_cat_cntr;  lookup in file=/lib/x86_64-linux-gnu/libc.so.6 [0]
 28504:	binding file /lib/x86_64-linux-gnu/libc.so.6 [0] to /lib/x86_64-linux-gnu/libc.so.6 [0]: normal symbol `_nl_msg_cat_cntr' [GLIBC_2.2.5]
 28504:	symbol=argp_program_bug_address;  lookup in file=cat [0]
 28504:	symbol=argp_program_bug_address;  lookup in file=/lib/x86_64-linux-gnu/libc.so.6 [0]
 28504:	binding file /lib/x86_64-linux-gnu/libc.so.6 [0] to /lib/x86_64-linux-gnu/libc.so.6 [0]: normal symbol `argp_program_bug_address' [GLIBC_2.2.5]
 28504:	symbol=__key_decryptsession_pk_LOCAL;  lookup in file=cat [0]
 28504:	symbol=__key_decryptsession_pk_LOCAL;  lookup in file=/lib/x86_64-linux-gnu/libc.so.6 [0]
 28504:	binding file /lib/x86_64-linux-gnu/libc.so.6 [0] to /lib/x86_64-linux-gnu/libc.so.6 [0]: normal symbol `__key_decryptsession_pk_LOCAL' [GLIBC_2.2.5]
 28504:	symbol=h_errlist;  lookup in file=cat [0]
 28504:	symbol=h_errlist;  lookup in file=/lib/x86_64-linux-gnu/libc.so.6 [0]
 28504:	binding file /lib/x86_64-linux-gnu/libc.so.6 [0] to /lib/x86_64-linux-gnu/libc.so.6 [0]: normal symbol `h_errlist' [GLIBC_2.2.5]
 28504:	symbol=program_invocation_short_name;  lookup in file=cat [0]
 28504:	binding file /lib/x86_64-linux-gnu/libc.so.6 [0] to cat [0]: normal symbol `program_invocation_short_name' [GLIBC_2.2.5]
 28504:	symbol=optind;  lookup in file=cat [0]
 28504:	binding file /lib/x86_64-linux-gnu/libc.so.6 [0] to cat [0]: normal symbol `optind' [GLIBC_2.2.5]
 28504:	symbol=_dl_starting_up;  lookup in file=cat [0]
 28504:	symbol=_dl_starting_up;  lookup in file=/lib/x86_64-linux-gnu/libc.so.6 [0]
 28504:	symbol=_dl_starting_up;  lookup in file=/lib64/ld-linux-x86-64.so.2 [0]
 28504:	symbol=stdout;  lookup in file=cat [0]
 28504:	binding file /lib/x86_64-linux-gnu/libc.so.6 [0] to cat [0]: normal symbol `stdout' [GLIBC_2.2.5]
 28504:	symbol=obstack_alloc_failed_handler;  lookup in file=cat [0]
 28504:	symbol=obstack_alloc_failed_handler;  lookup in file=/lib/x86_64-linux-gnu/libc.so.6 [0]
 28504:	binding file /lib/x86_64-linux-gnu/libc.so.6 [0] to /lib/x86_64-linux-gnu/libc.so.6 [0]: normal symbol `obstack_alloc_failed_handler' [GLIBC_2.2.5]
 28504:	symbol=error_print_progname;  lookup in file=cat [0]
 28504:	symbol=error_print_progname;  lookup in file=/lib/x86_64-linux-gnu/libc.so.6 [0]
 28504:	binding file /lib/x86_64-linux-gnu/libc.so.6 [0] to /lib/x86_64-linux-gnu/libc.so.6 [0]: normal symbol `error_print_progname' [GLIBC_2.2.5]
 28504:	symbol=optopt;  lookup in file=cat [0]
 28504:	symbol=optopt;  lookup in file=/lib/x86_64-linux-gnu/libc.so.6 [0]
 28504:	binding file /lib/x86_64-linux-gnu/libc.so.6 [0] to /lib/x86_64-linux-gnu/libc.so.6 [0]: normal symbol `optopt' [GLIBC_2.2.5]
 28504:	symbol=_IO_funlockfile;  lookup in file=cat [0]
 28504:	symbol=_IO_funlockfile;  lookup in file=/lib/x86_64-linux-gnu/libc.so.6 [0]
 28504:	binding file /lib/x86_64-linux-gnu/libc.so.6 [0] to /lib/x86_64-linux-gnu/libc.so.6 [0]: normal symbol `_IO_funlockfile' [GLIBC_2.2.5]
 28504:	symbol=obstack_exit_failure;  lookup in file=cat [0]
 28504:	symbol=obstack_exit_failure;  lookup in file=/lib/x86_64-linux-gnu/libc.so.6 [0]
 28504:	binding file /lib/x86_64-linux-gnu/libc.so.6 [0] to /lib/x86_64-linux-gnu/libc.so.6 [0]: normal symbol `obstack_exit_failure' [GLIBC_2.2.5]
 28504:	symbol=error_message_count;  lookup in file=cat [0]
 28504:	symbol=error_message_count;  lookup in file=/lib/x86_64-linux-gnu/libc.so.6 [0]
 28504:	binding file /lib/x86_64-linux-gnu/libc.so.6 [0] to /lib/x86_64-linux-gnu/libc.so.6 [0]: normal symbol `error_message_count' [GLIBC_2.2.5]
 28504:	symbol=svc_fdset;  lookup in file=cat [0]
 28504:	symbol=svc_fdset;  lookup in file=/lib/x86_64-linux-gnu/libc.so.6 [0]
 28504:	binding file /lib/x86_64-linux-gnu/libc.so.6 [0] to /lib/x86_64-linux-gnu/libc.so.6 [0]: normal symbol `svc_fdset' [GLIBC_2.2.5]
 28504:	symbol=program_invocation_name;  lookup in file=cat [0]
 28504:	binding file /lib/x86_64-linux-gnu/libc.so.6 [0] to cat [0]: normal symbol `program_invocation_name' [GLIBC_2.2.5]
 28504:	symbol=loc1;  lookup in file=cat [0]
 28504:	symbol=loc1;  lookup in file=/lib/x86_64-linux-gnu/libc.so.6 [0]
 28504:	binding file /lib/x86_64-linux-gnu/libc.so.6 [0] to /lib/x86_64-linux-gnu/libc.so.6 [0]: normal symbol `loc1' [GLIBC_2.2.5]
 28504:	symbol=free;  lookup in file=cat [0]
 28504:	symbol=free;  lookup in file=/lib/x86_64-linux-gnu/libc.so.6 [0]
 28504:	binding file /lib/x86_64-linux-gnu/libc.so.6 [0] to /lib/x86_64-linux-gnu/libc.so.6 [0]: normal symbol `free' [GLIBC_2.2.5]
 28504:	symbol=loc2;  lookup in file=cat [0]
 28504:	symbol=loc2;  lookup in file=/lib/x86_64-linux-gnu/libc.so.6 [0]
 28504:	binding file /lib/x86_64-linux-gnu/libc.so.6 [0] to /lib/x86_64-linux-gnu/libc.so.6 [0]: normal symbol `loc2' [GLIBC_2.2.5]
 28504:	symbol=__fpu_control;  lookup in file=cat [0]
 28504:	symbol=__fpu_control;  lookup in file=/lib/x86_64-linux-gnu/libc.so.6 [0]
 28504:	binding file /lib/x86_64-linux-gnu/libc.so.6 [0] to /lib/x86_64-linux-gnu/libc.so.6 [0]: normal symbol `__fpu_control' [GLIBC_2.2.5]
 28504:	symbol=re_syntax_options;  lookup in file=cat [0]
 28504:	symbol=re_syntax_options;  lookup in file=/lib/x86_64-linux-gnu/libc.so.6 [0]
 28504:	binding file /lib/x86_64-linux-gnu/libc.so.6 [0] to /lib/x86_64-linux-gnu/libc.so.6 [0]: normal symbol `re_syntax_options' [GLIBC_2.2.5]
 28504:	symbol=stdin;  lookup in file=cat [0]
 28504:	symbol=stdin;  lookup in file=/lib/x86_64-linux-gnu/libc.so.6 [0]
 28504:	binding file /lib/x86_64-linux-gnu/libc.so.6 [0] to /lib/x86_64-linux-gnu/libc.so.6 [0]: normal symbol `stdin' [GLIBC_2.2.5]
 28504:	symbol=__check_rhosts_file;  lookup in file=cat [0]
 28504:	symbol=__check_rhosts_file;  lookup in file=/lib/x86_64-linux-gnu/libc.so.6 [0]
 28504:	binding file /lib/x86_64-linux-gnu/libc.so.6 [0] to /lib/x86_64-linux-gnu/libc.so.6 [0]: normal symbol `__check_rhosts_file' [GLIBC_2.2.5]
 28504:	symbol=opterr;  lookup in file=cat [0]
 28504:	symbol=opterr;  lookup in file=/lib/x86_64-linux-gnu/libc.so.6 [0]
 28504:	binding file /lib/x86_64-linux-gnu/libc.so.6 [0] to /lib/x86_64-linux-gnu/libc.so.6 [0]: normal symbol `opterr' [GLIBC_2.2.5]
 28504:	symbol=__ctype32_toupper;  lookup in file=cat [0]
 28504:	symbol=__ctype32_toupper;  lookup in file=/lib/x86_64-linux-gnu/libc.so.6 [0]
 28504:	binding file /lib/x86_64-linux-gnu/libc.so.6 [0] to /lib/x86_64-linux-gnu/libc.so.6 [0]: normal symbol `__ctype32_toupper' [GLIBC_2.2.5]
 28504:	symbol=__realloc_hook;  lookup in file=cat [0]
 28504:	symbol=__realloc_hook;  lookup in file=/lib/x86_64-linux-gnu/libc.so.6 [0]
 28504:	binding file /lib/x86_64-linux-gnu/libc.so.6 [0] to /lib/x86_64-linux-gnu/libc.so.6 [0]: normal symbol `__realloc_hook' [GLIBC_2.2.5]
 28504:	symbol=_dl_argv;  lookup in file=cat [0]
 28504:	symbol=_dl_argv;  lookup in file=/lib/x86_64-linux-gnu/libc.so.6 [0]
 28504:	symbol=_dl_argv;  lookup in file=/lib64/ld-linux-x86-64.so.2 [0]
 28504:	binding file /lib/x86_64-linux-gnu/libc.so.6 [0] to /lib64/ld-linux-x86-64.so.2 [0]: normal symbol `_dl_argv' [GLIBC_PRIVATE]
 28504:	symbol=rpc_createerr;  lookup in file=cat [0]
 28504:	symbol=rpc_createerr;  lookup in file=/lib/x86_64-linux-gnu/libc.so.6 [0]
 28504:	binding file /lib/x86_64-linux-gnu/libc.so.6 [0] to /lib/x86_64-linux-gnu/libc.so.6 [0]: normal symbol `rpc_createerr' [GLIBC_2.2.5]
 28504:	symbol=_IO_2_1_stderr_;  lookup in file=cat [0]
 28504:	symbol=_IO_2_1_stderr_;  lookup in file=/lib/x86_64-linux-gnu/libc.so.6 [0]
 28504:	binding file /lib/x86_64-linux-gnu/libc.so.6 [0] to /lib/x86_64-linux-gnu/libc.so.6 [0]: normal symbol `_IO_2_1_stderr_' [GLIBC_2.2.5]
 28504:	symbol=_IO_2_1_stdout_;  lookup in file=cat [0]
 28504:	symbol=_IO_2_1_stdout_;  lookup in file=/lib/x86_64-linux-gnu/libc.so.6 [0]
 28504:	binding file /lib/x86_64-linux-gnu/libc.so.6 [0] to /lib/x86_64-linux-gnu/libc.so.6 [0]: normal symbol `_IO_2_1_stdout_' [GLIBC_2.2.5]
 28504:	symbol=_IO_2_1_stdin_;  lookup in file=cat [0]
 28504:	symbol=_IO_2_1_stdin_;  lookup in file=/lib/x86_64-linux-gnu/libc.so.6 [0]
 28504:	binding file /lib/x86_64-linux-gnu/libc.so.6 [0] to /lib/x86_64-linux-gnu/libc.so.6 [0]: normal symbol `_IO_2_1_stdin_' [GLIBC_2.2.5]
 28504:	
 28504:	relocation processing: cat (lazy)
 28504:	symbol=__gmon_start__;  lookup in file=cat [0]
 28504:	symbol=__gmon_start__;  lookup in file=/lib/x86_64-linux-gnu/libc.so.6 [0]
 28504:	symbol=__gmon_start__;  lookup in file=/lib64/ld-linux-x86-64.so.2 [0]
 28504:	symbol=__progname;  lookup in file=/lib/x86_64-linux-gnu/libc.so.6 [0]
 28504:	binding file cat [0] to /lib/x86_64-linux-gnu/libc.so.6 [0]: normal symbol `__progname' [GLIBC_2.2.5]
 28504:	symbol=__progname_full;  lookup in file=/lib/x86_64-linux-gnu/libc.so.6 [0]
 28504:	binding file cat [0] to /lib/x86_64-linux-gnu/libc.so.6 [0]: normal symbol `__progname_full' [GLIBC_2.2.5]
 28504:	symbol=optind;  lookup in file=/lib/x86_64-linux-gnu/libc.so.6 [0]
 28504:	binding file cat [0] to /lib/x86_64-linux-gnu/libc.so.6 [0]: normal symbol `optind' [GLIBC_2.2.5]
 28504:	symbol=stderr;  lookup in file=/lib/x86_64-linux-gnu/libc.so.6 [0]
 28504:	binding file cat [0] to /lib/x86_64-linux-gnu/libc.so.6 [0]: normal symbol `stderr' [GLIBC_2.2.5]
 28504:	symbol=stdout;  lookup in file=/lib/x86_64-linux-gnu/libc.so.6 [0]
 28504:	binding file cat [0] to /lib/x86_64-linux-gnu/libc.so.6 [0]: normal symbol `stdout' [GLIBC_2.2.5]
 28504:	
 28504:	relocation processing: /lib64/ld-linux-x86-64.so.2
 28504:	symbol=_r_debug;  lookup in file=cat [0]
 28504:	symbol=_r_debug;  lookup in file=/lib/x86_64-linux-gnu/libc.so.6 [0]
 28504:	symbol=_r_debug;  lookup in file=/lib64/ld-linux-x86-64.so.2 [0]
 28504:	binding file /lib64/ld-linux-x86-64.so.2 [0] to /lib64/ld-linux-x86-64.so.2 [0]: normal symbol `_r_debug' [GLIBC_2.2.5]
 28504:	symbol=free;  lookup in file=cat [0]
 28504:	symbol=free;  lookup in file=/lib/x86_64-linux-gnu/libc.so.6 [0]
 28504:	binding file /lib64/ld-linux-x86-64.so.2 [0] to /lib/x86_64-linux-gnu/libc.so.6 [0]: normal symbol `free' [GLIBC_2.2.5]
 28504:	symbol=__libc_memalign;  lookup in file=cat [0]
 28504:	symbol=__libc_memalign;  lookup in file=/lib/x86_64-linux-gnu/libc.so.6 [0]
 28504:	binding file /lib64/ld-linux-x86-64.so.2 [0] to /lib/x86_64-linux-gnu/libc.so.6 [0]: normal symbol `__libc_memalign' [GLIBC_2.2.5]
 28504:	symbol=malloc;  lookup in file=cat [0]
 28504:	symbol=malloc;  lookup in file=/lib/x86_64-linux-gnu/libc.so.6 [0]
 28504:	binding file /lib64/ld-linux-x86-64.so.2 [0] to /lib/x86_64-linux-gnu/libc.so.6 [0]: normal symbol `malloc' [GLIBC_2.2.5]
 28504:	symbol=__tls_get_addr;  lookup in file=cat [0]
 28504:	symbol=__tls_get_addr;  lookup in file=/lib/x86_64-linux-gnu/libc.so.6 [0]
 28504:	symbol=__tls_get_addr;  lookup in file=/lib64/ld-linux-x86-64.so.2 [0]
 28504:	binding file /lib64/ld-linux-x86-64.so.2 [0] to /lib64/ld-linux-x86-64.so.2 [0]: normal symbol `__tls_get_addr' [GLIBC_2.3]
 28504:	symbol=calloc;  lookup in file=cat [0]
 28504:	symbol=calloc;  lookup in file=/lib/x86_64-linux-gnu/libc.so.6 [0]
 28504:	binding file /lib64/ld-linux-x86-64.so.2 [0] to /lib/x86_64-linux-gnu/libc.so.6 [0]: normal symbol `calloc' [GLIBC_2.2.5]
 28504:	symbol=realloc;  lookup in file=cat [0]
 28504:	symbol=realloc;  lookup in file=/lib/x86_64-linux-gnu/libc.so.6 [0]
 28504:	binding file /lib64/ld-linux-x86-64.so.2 [0] to /lib/x86_64-linux-gnu/libc.so.6 [0]: normal symbol `realloc' [GLIBC_2.2.5]
 28504:	symbol=free;  lookup in file=cat [0]
 28504:	symbol=free;  lookup in file=/lib/x86_64-linux-gnu/libc.so.6 [0]
 28504:	binding file /lib64/ld-linux-x86-64.so.2 [0] to /lib/x86_64-linux-gnu/libc.so.6 [0]: normal symbol `free' [GLIBC_2.2.5]
 28504:	
 28504:	calling init: /lib64/ld-linux-x86-64.so.2
 28504:	
 28504:	
 28504:	calling init: /lib/x86_64-linux-gnu/libc.so.6
 28504:	
 28504:	symbol=gettimeofday;  lookup in file=cat [0]
 28504:	binding file cat [0] to cat [0]: normal symbol `gettimeofday' [LINUX_2.6]
 28504:	symbol=clock_gettime;  lookup in file=cat [0]
 28504:	binding file cat [0] to cat [0]: normal symbol `clock_gettime' [LINUX_2.6]
 28504:	symbol=__libc_start_main;  lookup in file=cat [0]
 28504:	symbol=__libc_start_main;  lookup in file=/lib/x86_64-linux-gnu/libc.so.6 [0]
 28504:	binding file cat [0] to /lib/x86_64-linux-gnu/libc.so.6 [0]: normal symbol `__libc_start_main' [GLIBC_2.2.5]
 28504:	
 28504:	initialize program: cat
 28504:	
 28504:	
 28504:	transferring control: cat
 28504:	
 28504:	symbol=getpagesize;  lookup in file=cat [0]
 28504:	symbol=getpagesize;  lookup in file=/lib/x86_64-linux-gnu/libc.so.6 [0]
 28504:	binding file cat [0] to /lib/x86_64-linux-gnu/libc.so.6 [0]: normal symbol `getpagesize' [GLIBC_2.2.5]
 28504:	symbol=strrchr;  lookup in file=cat [0]
 28504:	symbol=strrchr;  lookup in file=/lib/x86_64-linux-gnu/libc.so.6 [0]
 28504:	binding file cat [0] to /lib/x86_64-linux-gnu/libc.so.6 [0]: normal symbol `strrchr' [GLIBC_2.2.5]
 28504:	symbol=setlocale;  lookup in file=cat [0]
 28504:	symbol=setlocale;  lookup in file=/lib/x86_64-linux-gnu/libc.so.6 [0]
 28504:	binding file cat [0] to /lib/x86_64-linux-gnu/libc.so.6 [0]: normal symbol `setlocale' [GLIBC_2.2.5]
 28504:	symbol=malloc;  lookup in file=cat [0]
 28504:	symbol=malloc;  lookup in file=/lib/x86_64-linux-gnu/libc.so.6 [0]
 28504:	binding file /lib/x86_64-linux-gnu/libc.so.6 [0] to /lib/x86_64-linux-gnu/libc.so.6 [0]: normal symbol `malloc' [GLIBC_2.2.5]
 28504:	symbol=free;  lookup in file=cat [0]
 28504:	symbol=free;  lookup in file=/lib/x86_64-linux-gnu/libc.so.6 [0]
 28504:	binding file /lib/x86_64-linux-gnu/libc.so.6 [0] to /lib/x86_64-linux-gnu/libc.so.6 [0]: normal symbol `free' [GLIBC_2.2.5]
 28504:	symbol=bindtextdomain;  lookup in file=cat [0]
 28504:	symbol=bindtextdomain;  lookup in file=/lib/x86_64-linux-gnu/libc.so.6 [0]
 28504:	binding file cat [0] to /lib/x86_64-linux-gnu/libc.so.6 [0]: normal symbol `bindtextdomain' [GLIBC_2.2.5]
 28504:	symbol=textdomain;  lookup in file=cat [0]
 28504:	symbol=textdomain;  lookup in file=/lib/x86_64-linux-gnu/libc.so.6 [0]
 28504:	binding file cat [0] to /lib/x86_64-linux-gnu/libc.so.6 [0]: normal symbol `textdomain' [GLIBC_2.2.5]
 28504:	symbol=__cxa_atexit;  lookup in file=cat [0]
 28504:	symbol=__cxa_atexit;  lookup in file=/lib/x86_64-linux-gnu/libc.so.6 [0]
 28504:	binding file cat [0] to /lib/x86_64-linux-gnu/libc.so.6 [0]: normal symbol `__cxa_atexit' [GLIBC_2.2.5]
 28504:	symbol=getopt_long;  lookup in file=cat [0]
 28504:	symbol=getopt_long;  lookup in file=/lib/x86_64-linux-gnu/libc.so.6 [0]
 28504:	binding file cat [0] to /lib/x86_64-linux-gnu/libc.so.6 [0]: normal symbol `getopt_long' [GLIBC_2.2.5]
 28504:	symbol=__fxstat;  lookup in file=cat [0]
 28504:	symbol=__fxstat;  lookup in file=/lib/x86_64-linux-gnu/libc.so.6 [0]
 28504:	binding file cat [0] to /lib/x86_64-linux-gnu/libc.so.6 [0]: normal symbol `__fxstat' [GLIBC_2.2.5]
 28504:	symbol=malloc;  lookup in file=cat [0]
 28504:	symbol=malloc;  lookup in file=/lib/x86_64-linux-gnu/libc.so.6 [0]
 28504:	binding file cat [0] to /lib/x86_64-linux-gnu/libc.so.6 [0]: normal symbol `malloc' [GLIBC_2.2.5]
 28504:	symbol=read;  lookup in file=cat [0]
 28504:	symbol=read;  lookup in file=/lib/x86_64-linux-gnu/libc.so.6 [0]
 28504:	binding file cat [0] to /lib/x86_64-linux-gnu/libc.so.6 [0]: normal symbol `read' [GLIBC_2.2.5]        

The output of the command is also very useful for tracking performance problems for excessive dynamic loading etc. So it is a very simple but extremely useful tool for debugging linux ld problems!