Downloads & Free Reading Options - Results
Go To The Worker by Kimball Baker
Read "Go To The Worker" by Kimball Baker through these free online access and download options.
Books Results
Source: The Internet Archive
The internet Archive Search Results
Available books for downloads and borrow from The internet Archive
1TRIBUTES TO HON. ARLEN SPECTER Arlen Specter U.S. SENATOR FROM PENNSYLVANIA TRIBUTES IN THE CONGRESS OF THE UNITED STATES [GRAPHIC] [TIFF OMITTED] TONGRESS.#15 Arlen Specter ? Tributes Delivered In Congress Arlen Specter United States Senator 1981-2011 A ? Compiled Under The Direction Of The Joint Committee On Printing CONTENTS Biography............................................. V Farewell To The Senate................................ Xi Proceedings In The Senate: Tributes By Senators: Akaka, Daniel K., Of Hawaii.................... 12 Alexander, Lamar, Of Tennessee................. 3 Bennet, Michael F., Of Colorado................ 21 Boxer, Barbara, Of California.................. 23 Casey, Robert P., Jr., Of Pennsylvania......... 15, 24 Cochran, Thad, Of Mississippi.................. 19 Conrad, Kent, Of North Dakota.................. 8 Dodd, Christopher J., Of Connecticut........... 11 Durbin, Richard, Of Illinois................... 11, 17 Enzi, Michael B., Of Wyoming................... 9 Harkin, Tom, Of Iowa........................... 22 Hatch, Orrin G., Of Utah....................... 13 Levin, Carl, Of Michigan....................... 5 Murkowski, Lisa, Of Alaska..................... 26 Reed, Jack, Of Rhode Island.................... 5 Reid, Harry, Of Nevada......................... 5, 7 Sessions, Jeff, Of Alabama..................... 20 Udall, Mark, Of Colorado....................... 22 Warner, Mark R., Of Virginia................... 5 BIOGRAPHY Since First Elected In 1980, Arlen Specter Has Brought Rugged Individualism And Fierce Independence Learned From His Youth On The Kansas Plains To Become A Leading Senate Moderate. His Work As Philadelphia's Tough District Attorney Gave Him Insights To Write The Terrorist Prosecution Act, The Armed Career Criminal Act, And Coauthor The Second Chance Act. His Legal Background And Experience In Constitutional Law Provided The Skills To Serve As Judiciary Chairman During The Confirmation Hearings Of Chief Justice Roberts And Justice Alito. In Earlier Confirmation Hearings He Had The Courage To Cross Party Lines In Opposing Judge Bork And Disagreeing With Conventional Wisdom In Supporting Justice Thomas After Dissecting The Contradictory And Highly Charged Testimony. As A Consummate Legislator, He Has Counseled Compromise And Conciliation In A Congress That Has Established New Records For Partisan Discord. In Foreign Affairs, He Has Advocated Dialogue And Accommodation As An Antidote To Belligerency And Saber Rattling. Arlen Specter's Five Terms Have Made Him The Longest Serving U.S. Senator In Pennsylvania's History. A Voice Of Reason, His Independence And Balance Have Won Endorsements From The AFL-CIO And High Marks From The U.S. Chamber Of Commerce, The National Association Of Manufacturers, And The Americans For Tax Reform. Time Magazine Listed Him Among The Ten Best Senators In 2006. Knowlegis Rated Him The Second Most Powerful Senator In 2006 Behind Only Majority Leader Bill Frist. A November 11, 2007 Philadelphia Inquirer Editorial Stated: ''Senator Arlen Specter Has More Clout Than Some Sovereign Nations.'' Senator Specter Attributes His Zeal For Public Service To His Experience As A Child When He Saw The Government Mistreat His Father, Harry Specter, Who Migrated To The United States From Russia In 1911. Private Specter, Serving In World War I In The Infantry, Was Seriously Wounded In Action In France's Argonne Forest. When The Government Broke Its Promise To Pay World War I Veterans A 00 Bonus, The Veterans Marched On Washington. President Hoover Called Out The Army Which Fired On And Killed Veterans On The Mall In One Of The Blackest Days In American History. As A Metaphor, Senator Specter Says He Has Been On His Way To Washington Ever Since To Get His Father's Bonus And Since He Hasn't Gotten It Yet, He's Running For Reelection. The Incident Over His Father's Bonus Has Made Arlen Specter A Fierce Advocate For Veterans' Benefits And The ''little Guy'' In His Battles With The Federal Government. From His Immigrant Parents, Arlen Specter Learned Work Ethics The Hard Way. His Father, Harry Specter, Who Was A Peddler, Took 5-year-old Arlen To Small Kansas Towns Selling Cantaloupes Door To Door With A Small Basket In Hand. In His Dad's Junkyard In Russell, KS, 16-year-old Arlen Specter Cut Down Oil Derricks With An Acetylene Torch And Loaded Scrap Iron Into Rail Freight Cars Headed For The Smelter. His Credentials Include Votes For The Line-item Veto And A Constitutional Amendment For A Balanced Budget. As A Two-term Philadelphia District Attorney, He Fought For Tough Sentences For Tough Criminals And Later, In The Senate, Wrote Groundbreaking Legislation Providing For Life Sentences For Three-time Recidivists On Violent Crimes. Since 1981, He Has Played A Significant Role In Supreme Court Nomination Hearings, For Chief Justice Rehnquist, Justices O'Connor, Scalia, Kennedy, Souter, Thomas, Ginsberg, Breyer, And Judge Bork. Notwithstanding Debilitating Chemotherapy Treatments In 2005, He Stayed On The Job As Chairman Of The Judiciary Committee To Preside Over Historic Supreme Court Confirmation Hearings. His Work On The Judiciary Committee Has Included Writing Significant Legislation On Dealing With Constitutional Law, Civil Rights, And Privacy. As A Senior Member Of The Appropriations Committee, He Led The Fight To Increase Funding For The National Institutes Of Health From 2 Billion To 0 Billion To Expand Medical Research To Find Cures For Cancer, Heart Disease, Alzheimer's, Parkinson's, And Other Maladies. He Has Supported Expanding Health Care For Seniors And Children And Has Proposed Legislation To Cover The Almost 50 Million Americans Who Do Not Have Health Insurance. Because Senator Specter Is Keenly Aware Of The Importance Of Understanding The Younger Generation, He Often Visits And Speaks At Universities And High Schools. He Credits His Parents, Both Immigrants, With Emphasizing The Importance Of Education Which Has Enabled His Brother, Two Sisters, And Himself To Share In The American Dream. To Empower Others With Access To Education, He Led The Fight On The Appropriations Subcommittee To Increase Federal Spending By 138 Percent And Raise Funding For Scholarships And Student Loans. Constituent Service And Promoting Pennsylvania's Economic Interests Have Been The Hallmarks Of Senator Specter's Senate Career. He Maintained Offices In Philadelphia, Pittsburgh, Harrisburg, Erie, Scranton, Wilkes-Barre, And The Lehigh Valley To Help Residents Of Those Areas Who Needed Assistance To Cut Washington's Redtape. From His Experience As A Teenager Working On A Farm In Kansas, The State Where He Was Born, Senator Specter Has Understood And Worked On The Problems Of Pennsylvania's Farmers From His Position On The Appropriations Subcommittee On Agriculture. He Frequently Argues In The International Trade Commission To Assist The Steel Industry From Being Deluged With Unfair Foreign Imports. His Proposed Legislation, Endorsed By Both Business And Labor, Would Create A Private Right Of Action In Federal Courts To Stop Subsidized Or Dumped Products From Being Imported Into The United States. He Has Supported The Coal Industry By Promoting Legislation For Clean Coal Technology And Securing 00 Million For A Schuylkill County Project To Turn Sludge Into High Octane, Environmentally Safe Gasoline. Recognizing The Long-term Effects Of Global Warming, He Has Cosponsored The Bingaman-Specter Bill To Reduce Harm From Carbon Emissions. As Chairman Of The Intelligence Committee In The 104th Congress And A Member Of The Appropriations Subcommittee On Foreign Operations, Senator Specter Traveled Extensively Meeting With World Leaders Including Soviet President Mikhail Gorbachev; French President Francois Mitterrand; Israel's Prime Ministers Menachem Begin, Yitzhak Shamir, Yitzhak Rabin, Shimon Peres, Benjamin Netanyahu, Ehud Barak, Ariel Sharon, And Ehud Olmert; China's President Hu Jintao; Indian Prime Minister Singh; Pakistan's Prime Ministers Benazir Bhutto, Mohammad Zia, And Pervez Musharraf; Jordan's Kings Hussein And Abdullah; And Egyptian President Hosni Mubarak. Strongly Agreeing With Moshe Dayan's Famous Statement That We Make Peace With Our Enemies Not Our Friends, He Has Met With Syria's Presidents Hafez Al-Assad And Bashar Al-Assad; The Palestinian Authority's Chairman Yasser Arafat; Iraq's President Saddam Hussein; Cuba's President Fidel Castro; Libya's Leader Muammar Qadhafi; And Venezuela President Hugo Chavez. From These Meetings And His Studies Of Foreign Affairs Since His Undergraduate Days At The University Of Pennsylvania, Where He Majored In Political Science And International Relations, Senator Specter Has Been A Forceful Advocate For Aggressive Diplomacy To Solve International Conflicts. He Wrote, With Staffer Chris Bradish, An Article For The Washington Quarterly (Winter 2006-2007), Outlining A Blueprint For Diplomatic Initiatives In The Mideast With Emphasis On Bilateral Negotiations With Iran And Syria. Similarly, He Has Urged Bilateral, As Well As Multilateral, Negotiations With North Korea. Early In His Senate Career In 1982, He Was Among The First To Call For A U.S./U.S.S.R. Summit In A Resolution Which Passed The Senate 90 To 8. He Participated Extensively With The Senate Observers At The Geneva Arms Reduction Talks In The 1980s And Led The Fight For The Broad Interpretation Of The ABM Treaty. Senator Specter Consistently Supported Appropriations To Fight Global AIDS And Promoted Worldwide Support For Underdeveloped Countries Including Free Trade Agreements. Arlen Specter Was Elected To The U.S. Senate In 1980 And Served Five Terms. In 2005, Senator Specter Became Pennsylvania's Longest Serving U.S. Senator. He Was A Senior Member Of The Senate Judiciary, Appropriations, And Veterans Affairs Committees. Senator Specter Was A Member Of The Senate Judiciary Committee Since He Came To The Senate. As Such, He Played An Instrumental Role In Many Of The Senate's Most Important Issues, Including The Confirmations Of Chief Justice John G. Roberts, Jr. And Justice Samuel Alito To Serve As Associate Justice On The U.S. Supreme Court. Senator Specter Also Shepherded Through The Judiciary Committee Legislation On Asbestos Litigation Reform To Absolve What The Supreme Court Once Called An ''elephantine Mass'' Clogging Our Judicial System. Senator Specter Has Worked In A Bipartisan Fashion To Reauthorize Key Provisions Of The USA PATRIOT Act, An Important Tool In The U.S. War On Terror. He Has Also Authored Legislation To Help Consumers Better Protect The Privacy Of Their Personal Information In The Face Of Recurrent Data Security Breaches Across The Country. On The Judiciary Committee, Senator Specter Built On His Foundation As A Lawyer And Former District Attorney. He Was The Author Of The Armed Career Criminal Act, Which Has Been Praised For Its Long Prison Terms For Repeat Offenders, And The Terrorist Prosecution Act, Which Authorizes Criminal Actions In U.S. Courts For Assaulting, Maiming, Or Murdering Americans Anywhere In The World. As A Senior Member Of The Appropriations Committee, Senator Specter Was Chairman Of The Senate Appropriations Subcommittee On Labor, Health And Human Services, And Education. This Subcommittee Oversees Federal Funding For The National Institutes Of Health (NIH), The Centers For Disease Control, Educational Programs Like Head Start, Pell Grants, And GEAR-UP, And Worker Safety Programs. Under His Leadership, Funding For Education Has Increased By More Than 130 Percent. Senator Specter Was Also Instrumental In Doubling The Budget For NIH, Which Has Made Major Advances In Curing Parkinson's, Cancer, Heart Disease, And Delaying The Onset Of Alzheimer's. Finally, Senator Specter Is A Strong Proponent Of Stem Cell Research For The Purposes Of Discovering Knowledge That May Lead To Cures For These Same Ailments. Strengthening Our Nation's Security Has Been A Longstanding Priority Of Senator Specter's. Thirty Days After The Terrorist Attacks Of September 11, 2001, Senator Specter Drafted The Legislation That Established The Department Of Homeland Security. While Serving As Chairman Of The Senate Intelligence Committee In The 104th Congress, He Authored The Bill Creating The Inspector General Of The Central Intelligence Agency, Marking The Only Reform Legislation To Emerge From The Iran-Contra Affair. Senator Specter Continues His Strong Advocacy For Veterans, A Passion Born From The First Veteran He Ever Knew, His Father, Harry Specter, Who Was Wounded In World War I. As A Former Chairman Of The Veterans Committee, He Pushed For Just Treatment For Veterans And Increased Benefits. Working Closely With The Secretary Of Veterans Affairs, Senator Specter Oversaw The Opening Of Four New Veterans Outpatient Clinics In Fayette, Northampton, Venango, And Warren Counties And Passed Legislation To Create A New Veterans Cemetery In Southeastern Pennsylvania. A Frequent Visitor To All Of Pennsylvania's 67 Counties, Senator Specter Places Constituent Service High On His Priorities And Has Been Instrumental On The Appropriations Committee In Promoting Pennsylvania's Interests In Agriculture, High-technology, Steel, Coal, Tourism, Mass Transit, Highways, And Military Installations. In Addition To Tackling The Major Legislative Business Before The Senate, Senator Specter Also Engaged In A Personal Battle With Stage IV-B Hodgkin's Lymphoma Cancer In 2005 And 2008. In Both Cases He Underwent Nearly 5 Months Of Chemotherapy, But Still Maintained All Of His Senatorial Duties, Including Chairing Hearings, Voting, And Brokering Important Legislative Initiatives. In July 2008, Senator Specter Received His Last Chemotherapy Treatment And Has Since Received A Clean Bill Of Health. Senator Specter Was Born To Immigrant Parents In Wichita, KS, And Grew Up In The Small Town Of Russell, KS. He Is A Phi Beta Kappa Graduate Of The University Of Pennsylvania And Served As An Editor Of The Yale Law Journal. He Began His Career In Public Service As An Assistant Philadelphia District Attorney. While Serving In That Position, He Was Named Assistant Counsel On The Warren Commission Investigation Into President Kennedy's Assassination. Two Years Later, Senator Specter Was Elected District Attorney Of Philadelphia At The Age Of 35. Senator Specter Lives In Philadelphia With His Wife Joan. They Have Two Sons, Shanin And Steve, And Four Grandchildren, Silvi, Perri, Lilli, And Hatti. Farewell To The Senate Tuesday, December 21, 2010 Mr. SPECTER. Madam President, This Is Not A Farewell Address But, Rather, A Closing Argument To A Jury Of My Colleagues And The American People Outlining My Views On How The Senate And, With It, The Federal Government Arrived At Its Current Condition Of Partisan Gridlock, And My Suggestions On Where We Go From Here On That Pressing Problem And The Key Issues Of National And International Importance. To Make A Final Floor Statement Is A Challenge. The Washington Post Noted The Poor Attendance At My Colleagues' Farewell Speeches Earlier This Month. That Is Really Not Surprising Since There Is Hardly Anyone Ever On The Senate Floor. The Days Of Lively Debate With Many Members On The Floor Are Long Gone. Abuse Of The Senate Rules Has Pretty Much Stripped Senators Of The Right To Offer Amendments. The Modern Filibuster Requires Only A Threat And No Talking. So The Senate's Activity For More Than A Decade Has Been The Virtual Continuous Drone Of A Quorum Call. But That Is Not The Way It Was When Senator Chris Dodd And I Were Privileged To Enter The World's Greatest Deliberative Body 30 Years Ago. Senators On Both Sides Of The Aisle Engaged In Collegial Debate And Found Ways To Find Common Ground On The Nation's Pressing Problems. When I Attended My First Republican Moderates Luncheon, I Met Mark Hatfield, John Chafee, Ted Stevens, Mac Mathias, Bob Stafford, Bob Packwood, Chuck Percy, Bill Cohen, Warren Rudman, Alan Simpson, Jack Danforth, John Warner, Nancy Kassebaum, Slade Gorton, And I Found My Colleague John Heinz There. That Is A Far Cry From Later Years When The Moderates Could Fit Into A Telephone Booth. On The Other Side Of The Aisle, I Found Many Democratic Senators Willing To Move To The Center To Craft Legislation
By Committee on Appropriations
Government Publishing Office U.S. Congress Senate Committee on Appropriations TRIBUTES TO HON. ARLEN SPECTER Arlen Specter U.S. SENATOR FROM PENNSYLVANIA TRIBUTES IN THE CONGRESS OF THE UNITED STATES [GRAPHIC] [TIFF OMITTED] TONGRESS.#15 Arlen Specter ? Tributes Delivered in Congress Arlen Specter United States Senator 1981-2011 a ? Compiled under the direction of the Joint Committee on Printing CONTENTS Biography............................................. v Farewell to the Senate................................ xi Proceedings in the Senate: Tributes by Senators: Akaka, Daniel K., of Hawaii.................... 12 Alexander, Lamar, of Tennessee................. 3 Bennet, Michael F., of Colorado................ 21 Boxer, Barbara, of California.................. 23 Casey, Robert P., Jr., of Pennsylvania......... 15, 24 Cochran, Thad, of Mississippi.................. 19 Conrad, Kent, of North Dakota.................. 8 Dodd, Christopher J., of Connecticut........... 11 Durbin, Richard, of Illinois................... 11, 17 Enzi, Michael B., of Wyoming................... 9 Harkin, Tom, of Iowa........................... 22 Hatch, Orrin G., of Utah....................... 13 Levin, Carl, of Michigan....................... 5 Murkowski, Lisa, of Alaska..................... 26 Reed, Jack, of Rhode Island.................... 5 Reid, Harry, of Nevada......................... 5, 7 Sessions, Jeff, of Alabama..................... 20 Udall, Mark, of Colorado....................... 22 Warner, Mark R., of Virginia................... 5 BIOGRAPHY Since first elected in 1980, Arlen Specter has brought rugged individualism and fierce independence learned from his youth on the Kansas plains to become a leading Senate moderate. His work as Philadelphia's tough district attorney gave him insights to write the Terrorist Prosecution Act, the Armed Career Criminal Act, and coauthor the Second Chance Act. His legal background and experience in constitutional law provided the skills to serve as Judiciary chairman during the confirmation hearings of Chief Justice Roberts and Justice Alito. In earlier confirmation hearings he had the courage to cross party lines in opposing Judge Bork and disagreeing with conventional wisdom in supporting Justice Thomas after dissecting the contradictory and highly charged testimony. As a consummate legislator, he has counseled compromise and conciliation in a Congress that has established new records for partisan discord. In foreign affairs, he has advocated dialogue and accommodation as an antidote to belligerency and saber rattling. Arlen Specter's five terms have made him the longest serving U.S. Senator in Pennsylvania's history. A voice of reason, his independence and balance have won endorsements from the AFL-CIO and high marks from the U.S. Chamber of Commerce, the National Association of Manufacturers, and the Americans for Tax Reform. Time magazine listed him among the Ten Best Senators in 2006. Knowlegis rated him the second most powerful Senator in 2006 behind only Majority Leader Bill Frist. A November 11, 2007 Philadelphia Inquirer editorial stated: ''Senator Arlen Specter has more clout than some sovereign nations.'' Senator Specter attributes his zeal for public service to his experience as a child when he saw the government mistreat his father, Harry Specter, who migrated to the United States from Russia in 1911. Private Specter, serving in World War I in the infantry, was seriously wounded in action in France's Argonne Forest. When the government broke its promise to pay World War I veterans a 00 bonus, the veterans marched on Washington. President Hoover called out the Army which fired on and killed veterans on the Mall in one of the blackest days in American history. As a metaphor, Senator Specter says he has been on his way to Washington ever since to get his father's bonus and since he hasn't gotten it yet, he's running for reelection. The incident over his father's bonus has made Arlen Specter a fierce advocate for veterans' benefits and the ''little guy'' in his battles with the Federal Government. From his immigrant parents, Arlen Specter learned work ethics the hard way. His father, Harry Specter, who was a peddler, took 5-year-old Arlen to small Kansas towns selling cantaloupes door to door with a small basket in hand. In his dad's junkyard in Russell, KS, 16-year-old Arlen Specter cut down oil derricks with an acetylene torch and loaded scrap iron into rail freight cars headed for the smelter. His credentials include votes for the line-item veto and a constitutional amendment for a balanced budget. As a two-term Philadelphia district attorney, he fought for tough sentences for tough criminals and later, in the Senate, wrote groundbreaking legislation providing for life sentences for three-time recidivists on violent crimes. Since 1981, he has played a significant role in Supreme Court nomination hearings, for Chief Justice Rehnquist, Justices O'Connor, Scalia, Kennedy, Souter, Thomas, Ginsberg, Breyer, and Judge Bork. Notwithstanding debilitating chemotherapy treatments in 2005, he stayed on the job as chairman of the Judiciary Committee to preside over historic Supreme Court confirmation hearings. His work on the Judiciary Committee has included writing significant legislation on dealing with constitutional law, civil rights, and privacy. As a senior member of the Appropriations Committee, he led the fight to increase funding for the National Institutes of Health from 2 billion to 0 billion to expand medical research to find cures for cancer, heart disease, Alzheimer's, Parkinson's, and other maladies. He has supported expanding health care for seniors and children and has proposed legislation to cover the almost 50 million Americans who do not have health insurance. Because Senator Specter is keenly aware of the importance of understanding the younger generation, he often visits and speaks at universities and high schools. He credits his parents, both immigrants, with emphasizing the importance of education which has enabled his brother, two sisters, and himself to share in the American dream. To empower others with access to education, he led the fight on the Appropriations Subcommittee to increase Federal spending by 138 percent and raise funding for scholarships and student loans. Constituent service and promoting Pennsylvania's economic interests have been the hallmarks of Senator Specter's Senate career. He maintained offices in Philadelphia, Pittsburgh, Harrisburg, Erie, Scranton, Wilkes-Barre, and the Lehigh Valley to help residents of those areas who needed assistance to cut Washington's redtape. From his experience as a teenager working on a farm in Kansas, the State where he was born, Senator Specter has understood and worked on the problems of Pennsylvania's farmers from his position on the Appropriations Subcommittee on Agriculture. He frequently argues in the International Trade Commission to assist the steel industry from being deluged with unfair foreign imports. His proposed legislation, endorsed by both business and labor, would create a private right of action in Federal courts to stop subsidized or dumped products from being imported into the United States. He has supported the coal industry by promoting legislation for clean coal technology and securing 00 million for a Schuylkill County project to turn sludge into high octane, environmentally safe gasoline. Recognizing the long-term effects of global warming, he has cosponsored the Bingaman-Specter bill to reduce harm from carbon emissions. As chairman of the Intelligence Committee in the 104th Congress and a member of the Appropriations Subcommittee on Foreign Operations, Senator Specter traveled extensively meeting with world leaders including Soviet President Mikhail Gorbachev; French President Francois Mitterrand; Israel's Prime Ministers Menachem Begin, Yitzhak Shamir, Yitzhak Rabin, Shimon Peres, Benjamin Netanyahu, Ehud Barak, Ariel Sharon, and Ehud Olmert; China's President Hu Jintao; Indian Prime Minister Singh; Pakistan's Prime Ministers Benazir Bhutto, Mohammad Zia, and Pervez Musharraf; Jordan's Kings Hussein and Abdullah; and Egyptian President Hosni Mubarak. Strongly agreeing with Moshe Dayan's famous statement that we make peace with our enemies not our friends, he has met with Syria's Presidents Hafez al-Assad and Bashar al-Assad; the Palestinian Authority's Chairman Yasser Arafat; Iraq's President Saddam Hussein; Cuba's President Fidel Castro; Libya's Leader Muammar Qadhafi; and Venezuela President Hugo Chavez. From these meetings and his studies of foreign affairs since his undergraduate days at the University of Pennsylvania, where he majored in political science and international relations, Senator Specter has been a forceful advocate for aggressive diplomacy to solve international conflicts. He wrote, with staffer Chris Bradish, an article for the Washington Quarterly (Winter 2006-2007), outlining a blueprint for diplomatic initiatives in the Mideast with emphasis on bilateral negotiations with Iran and Syria. Similarly, he has urged bilateral, as well as multilateral, negotiations with North Korea. Early in his Senate career in 1982, he was among the first to call for a U.S./U.S.S.R. summit in a resolution which passed the Senate 90 to 8. He participated extensively with the Senate observers at the Geneva Arms Reduction talks in the 1980s and led the fight for the broad interpretation of the ABM Treaty. Senator Specter consistently supported appropriations to fight global AIDS and promoted worldwide support for underdeveloped countries including free trade agreements. Arlen Specter was elected to the U.S. Senate in 1980 and served five terms. In 2005, Senator Specter became Pennsylvania's longest serving U.S. Senator. He was a senior member of the Senate Judiciary, Appropriations, and Veterans Affairs Committees. Senator Specter was a member of the Senate Judiciary Committee since he came to the Senate. As such, he played an instrumental role in many of the Senate's most important issues, including the confirmations of Chief Justice John G. Roberts, Jr. and Justice Samuel Alito to serve as Associate Justice on the U.S. Supreme Court. Senator Specter also shepherded through the Judiciary Committee legislation on asbestos litigation reform to absolve what the Supreme Court once called an ''elephantine mass'' clogging our judicial system. Senator Specter has worked in a bipartisan fashion to reauthorize key provisions of the USA PATRIOT Act, an important tool in the U.S. war on terror. He has also authored legislation to help consumers better protect the privacy of their personal information in the face of recurrent data security breaches across the country. On the Judiciary Committee, Senator Specter built on his foundation as a lawyer and former district attorney. He was the author of the Armed Career Criminal Act, which has been praised for its long prison terms for repeat offenders, and the Terrorist Prosecution Act, which authorizes criminal actions in U.S. courts for assaulting, maiming, or murdering Americans anywhere in the world. As a senior member of the Appropriations Committee, Senator Specter was chairman of the Senate Appropriations Subcommittee on Labor, Health and Human Services, and Education. This subcommittee oversees Federal funding for the National Institutes of Health (NIH), the Centers for Disease Control, educational programs like Head Start, Pell grants, and GEAR-UP, and worker safety programs. Under his leadership, funding for education has increased by more than 130 percent. Senator Specter was also instrumental in doubling the budget for NIH, which has made major advances in curing Parkinson's, cancer, heart disease, and delaying the onset of Alzheimer's. Finally, Senator Specter is a strong proponent of stem cell research for the purposes of discovering knowledge that may lead to cures for these same ailments. Strengthening our Nation's security has been a longstanding priority of Senator Specter's. Thirty days after the terrorist attacks of September 11, 2001, Senator Specter drafted the legislation that established the Department of Homeland Security. While serving as chairman of the Senate Intelligence Committee in the 104th Congress, he authored the bill creating the Inspector General of the Central Intelligence Agency, marking the only reform legislation to emerge from the Iran-Contra affair. Senator Specter continues his strong advocacy for veterans, a passion born from the first veteran he ever knew, his father, Harry Specter, who was wounded in World War I. As a former chairman of the Veterans Committee, he pushed for just treatment for veterans and increased benefits. Working closely with the Secretary of Veterans Affairs, Senator Specter oversaw the opening of four new veterans outpatient clinics in Fayette, Northampton, Venango, and Warren Counties and passed legislation to create a new veterans cemetery in Southeastern Pennsylvania. A frequent visitor to all of Pennsylvania's 67 counties, Senator Specter places constituent service high on his priorities and has been instrumental on the Appropriations Committee in promoting Pennsylvania's interests in agriculture, high-technology, steel, coal, tourism, mass transit, highways, and military installations. In addition to tackling the major legislative business before the Senate, Senator Specter also engaged in a personal battle with Stage IV-B Hodgkin's lymphoma cancer in 2005 and 2008. In both cases he underwent nearly 5 months of chemotherapy, but still maintained all of his senatorial duties, including chairing hearings, voting, and brokering important legislative initiatives. In July 2008, Senator Specter received his last chemotherapy treatment and has since received a clean bill of health. Senator Specter was born to immigrant parents in Wichita, KS, and grew up in the small town of Russell, KS. He is a Phi Beta Kappa graduate of the University of Pennsylvania and served as an editor of the Yale Law Journal. He began his career in public service as an assistant Philadelphia district attorney. While serving in that position, he was named assistant counsel on the Warren Commission investigation into President Kennedy's assassination. Two years later, Senator Specter was elected district attorney of Philadelphia at the age of 35. Senator Specter lives in Philadelphia with his wife Joan. They have two sons, Shanin and Steve, and four grandchildren, Silvi, Perri, Lilli, and Hatti. Farewell to the Senate Tuesday, December 21, 2010 Mr. SPECTER. Madam President, this is not a farewell address but, rather, a closing argument to a jury of my colleagues and the American people outlining my views on how the Senate and, with it, the Federal Government arrived at its current condition of partisan gridlock, and my suggestions on where we go from here on that pressing problem and the key issues of national and international importance. To make a final floor statement is a challenge. The Washington Post noted the poor attendance at my colleagues' farewell speeches earlier this month. That is really not surprising since there is hardly anyone ever on the Senate floor. The days of lively debate with many Members on the floor are long gone. Abuse of the Senate rules has pretty much stripped Senators of the right to offer amendments. The modern filibuster requires only a threat and no talking. So the Senate's activity for more than a decade has been the virtual continuous drone of a quorum call. But that is not the way it was when Senator Chris Dodd and I were privileged to enter the world's greatest deliberative body 30 years ago. Senators on both sides of the aisle engaged in collegial debate and found ways to find common ground on the Nation's pressing problems. When I attended my first Republican moderates luncheon, I met Mark Hatfield, John Chafee, Ted Stevens, Mac Mathias, Bob Stafford, Bob Packwood, Chuck Percy, Bill Cohen, Warren Rudman, Alan Simpson, Jack Danforth, John Warner, Nancy Kassebaum, Slade Gorton, and I found my colleague John Heinz there. That is a far cry from later years when the moderates could fit into a telephone booth. On the other side of the aisle, I found many Democratic Senators willing to move to the center to craft legislation Date(s) Held: 2010-12-21, 2010-11-30, 2010-12-08, 2010-12-10, 2010-12-15, 2010-12-16, 2010-12-19, 2010-12-21, 2010-12-22 111th Congress, 2nd Session GPO Document Source: CHRG-111shrg64816 Superintendents of Documents ID: Y 4.AP 6/2 Related Items:
“TRIBUTES TO HON. ARLEN SPECTER Arlen Specter U.S. SENATOR FROM PENNSYLVANIA TRIBUTES IN THE CONGRESS OF THE UNITED STATES [GRAPHIC] [TIFF OMITTED] TONGRESS.#15 Arlen Specter ? Tributes Delivered In Congress Arlen Specter United States Senator 1981-2011 A ? Compiled Under The Direction Of The Joint Committee On Printing CONTENTS Biography............................................. V Farewell To The Senate................................ Xi Proceedings In The Senate: Tributes By Senators: Akaka, Daniel K., Of Hawaii.................... 12 Alexander, Lamar, Of Tennessee................. 3 Bennet, Michael F., Of Colorado................ 21 Boxer, Barbara, Of California.................. 23 Casey, Robert P., Jr., Of Pennsylvania......... 15, 24 Cochran, Thad, Of Mississippi.................. 19 Conrad, Kent, Of North Dakota.................. 8 Dodd, Christopher J., Of Connecticut........... 11 Durbin, Richard, Of Illinois................... 11, 17 Enzi, Michael B., Of Wyoming................... 9 Harkin, Tom, Of Iowa........................... 22 Hatch, Orrin G., Of Utah....................... 13 Levin, Carl, Of Michigan....................... 5 Murkowski, Lisa, Of Alaska..................... 26 Reed, Jack, Of Rhode Island.................... 5 Reid, Harry, Of Nevada......................... 5, 7 Sessions, Jeff, Of Alabama..................... 20 Udall, Mark, Of Colorado....................... 22 Warner, Mark R., Of Virginia................... 5 BIOGRAPHY Since First Elected In 1980, Arlen Specter Has Brought Rugged Individualism And Fierce Independence Learned From His Youth On The Kansas Plains To Become A Leading Senate Moderate. His Work As Philadelphia's Tough District Attorney Gave Him Insights To Write The Terrorist Prosecution Act, The Armed Career Criminal Act, And Coauthor The Second Chance Act. His Legal Background And Experience In Constitutional Law Provided The Skills To Serve As Judiciary Chairman During The Confirmation Hearings Of Chief Justice Roberts And Justice Alito. In Earlier Confirmation Hearings He Had The Courage To Cross Party Lines In Opposing Judge Bork And Disagreeing With Conventional Wisdom In Supporting Justice Thomas After Dissecting The Contradictory And Highly Charged Testimony. As A Consummate Legislator, He Has Counseled Compromise And Conciliation In A Congress That Has Established New Records For Partisan Discord. In Foreign Affairs, He Has Advocated Dialogue And Accommodation As An Antidote To Belligerency And Saber Rattling. Arlen Specter's Five Terms Have Made Him The Longest Serving U.S. Senator In Pennsylvania's History. A Voice Of Reason, His Independence And Balance Have Won Endorsements From The AFL-CIO And High Marks From The U.S. Chamber Of Commerce, The National Association Of Manufacturers, And The Americans For Tax Reform. Time Magazine Listed Him Among The Ten Best Senators In 2006. Knowlegis Rated Him The Second Most Powerful Senator In 2006 Behind Only Majority Leader Bill Frist. A November 11, 2007 Philadelphia Inquirer Editorial Stated: ''Senator Arlen Specter Has More Clout Than Some Sovereign Nations.'' Senator Specter Attributes His Zeal For Public Service To His Experience As A Child When He Saw The Government Mistreat His Father, Harry Specter, Who Migrated To The United States From Russia In 1911. Private Specter, Serving In World War I In The Infantry, Was Seriously Wounded In Action In France's Argonne Forest. When The Government Broke Its Promise To Pay World War I Veterans A 00 Bonus, The Veterans Marched On Washington. President Hoover Called Out The Army Which Fired On And Killed Veterans On The Mall In One Of The Blackest Days In American History. As A Metaphor, Senator Specter Says He Has Been On His Way To Washington Ever Since To Get His Father's Bonus And Since He Hasn't Gotten It Yet, He's Running For Reelection. The Incident Over His Father's Bonus Has Made Arlen Specter A Fierce Advocate For Veterans' Benefits And The ''little Guy'' In His Battles With The Federal Government. From His Immigrant Parents, Arlen Specter Learned Work Ethics The Hard Way. His Father, Harry Specter, Who Was A Peddler, Took 5-year-old Arlen To Small Kansas Towns Selling Cantaloupes Door To Door With A Small Basket In Hand. In His Dad's Junkyard In Russell, KS, 16-year-old Arlen Specter Cut Down Oil Derricks With An Acetylene Torch And Loaded Scrap Iron Into Rail Freight Cars Headed For The Smelter. His Credentials Include Votes For The Line-item Veto And A Constitutional Amendment For A Balanced Budget. As A Two-term Philadelphia District Attorney, He Fought For Tough Sentences For Tough Criminals And Later, In The Senate, Wrote Groundbreaking Legislation Providing For Life Sentences For Three-time Recidivists On Violent Crimes. Since 1981, He Has Played A Significant Role In Supreme Court Nomination Hearings, For Chief Justice Rehnquist, Justices O'Connor, Scalia, Kennedy, Souter, Thomas, Ginsberg, Breyer, And Judge Bork. Notwithstanding Debilitating Chemotherapy Treatments In 2005, He Stayed On The Job As Chairman Of The Judiciary Committee To Preside Over Historic Supreme Court Confirmation Hearings. His Work On The Judiciary Committee Has Included Writing Significant Legislation On Dealing With Constitutional Law, Civil Rights, And Privacy. As A Senior Member Of The Appropriations Committee, He Led The Fight To Increase Funding For The National Institutes Of Health From 2 Billion To 0 Billion To Expand Medical Research To Find Cures For Cancer, Heart Disease, Alzheimer's, Parkinson's, And Other Maladies. He Has Supported Expanding Health Care For Seniors And Children And Has Proposed Legislation To Cover The Almost 50 Million Americans Who Do Not Have Health Insurance. Because Senator Specter Is Keenly Aware Of The Importance Of Understanding The Younger Generation, He Often Visits And Speaks At Universities And High Schools. He Credits His Parents, Both Immigrants, With Emphasizing The Importance Of Education Which Has Enabled His Brother, Two Sisters, And Himself To Share In The American Dream. To Empower Others With Access To Education, He Led The Fight On The Appropriations Subcommittee To Increase Federal Spending By 138 Percent And Raise Funding For Scholarships And Student Loans. Constituent Service And Promoting Pennsylvania's Economic Interests Have Been The Hallmarks Of Senator Specter's Senate Career. He Maintained Offices In Philadelphia, Pittsburgh, Harrisburg, Erie, Scranton, Wilkes-Barre, And The Lehigh Valley To Help Residents Of Those Areas Who Needed Assistance To Cut Washington's Redtape. From His Experience As A Teenager Working On A Farm In Kansas, The State Where He Was Born, Senator Specter Has Understood And Worked On The Problems Of Pennsylvania's Farmers From His Position On The Appropriations Subcommittee On Agriculture. He Frequently Argues In The International Trade Commission To Assist The Steel Industry From Being Deluged With Unfair Foreign Imports. His Proposed Legislation, Endorsed By Both Business And Labor, Would Create A Private Right Of Action In Federal Courts To Stop Subsidized Or Dumped Products From Being Imported Into The United States. He Has Supported The Coal Industry By Promoting Legislation For Clean Coal Technology And Securing 00 Million For A Schuylkill County Project To Turn Sludge Into High Octane, Environmentally Safe Gasoline. Recognizing The Long-term Effects Of Global Warming, He Has Cosponsored The Bingaman-Specter Bill To Reduce Harm From Carbon Emissions. As Chairman Of The Intelligence Committee In The 104th Congress And A Member Of The Appropriations Subcommittee On Foreign Operations, Senator Specter Traveled Extensively Meeting With World Leaders Including Soviet President Mikhail Gorbachev; French President Francois Mitterrand; Israel's Prime Ministers Menachem Begin, Yitzhak Shamir, Yitzhak Rabin, Shimon Peres, Benjamin Netanyahu, Ehud Barak, Ariel Sharon, And Ehud Olmert; China's President Hu Jintao; Indian Prime Minister Singh; Pakistan's Prime Ministers Benazir Bhutto, Mohammad Zia, And Pervez Musharraf; Jordan's Kings Hussein And Abdullah; And Egyptian President Hosni Mubarak. Strongly Agreeing With Moshe Dayan's Famous Statement That We Make Peace With Our Enemies Not Our Friends, He Has Met With Syria's Presidents Hafez Al-Assad And Bashar Al-Assad; The Palestinian Authority's Chairman Yasser Arafat; Iraq's President Saddam Hussein; Cuba's President Fidel Castro; Libya's Leader Muammar Qadhafi; And Venezuela President Hugo Chavez. From These Meetings And His Studies Of Foreign Affairs Since His Undergraduate Days At The University Of Pennsylvania, Where He Majored In Political Science And International Relations, Senator Specter Has Been A Forceful Advocate For Aggressive Diplomacy To Solve International Conflicts. He Wrote, With Staffer Chris Bradish, An Article For The Washington Quarterly (Winter 2006-2007), Outlining A Blueprint For Diplomatic Initiatives In The Mideast With Emphasis On Bilateral Negotiations With Iran And Syria. Similarly, He Has Urged Bilateral, As Well As Multilateral, Negotiations With North Korea. Early In His Senate Career In 1982, He Was Among The First To Call For A U.S./U.S.S.R. Summit In A Resolution Which Passed The Senate 90 To 8. He Participated Extensively With The Senate Observers At The Geneva Arms Reduction Talks In The 1980s And Led The Fight For The Broad Interpretation Of The ABM Treaty. Senator Specter Consistently Supported Appropriations To Fight Global AIDS And Promoted Worldwide Support For Underdeveloped Countries Including Free Trade Agreements. Arlen Specter Was Elected To The U.S. Senate In 1980 And Served Five Terms. In 2005, Senator Specter Became Pennsylvania's Longest Serving U.S. Senator. He Was A Senior Member Of The Senate Judiciary, Appropriations, And Veterans Affairs Committees. Senator Specter Was A Member Of The Senate Judiciary Committee Since He Came To The Senate. As Such, He Played An Instrumental Role In Many Of The Senate's Most Important Issues, Including The Confirmations Of Chief Justice John G. Roberts, Jr. And Justice Samuel Alito To Serve As Associate Justice On The U.S. Supreme Court. Senator Specter Also Shepherded Through The Judiciary Committee Legislation On Asbestos Litigation Reform To Absolve What The Supreme Court Once Called An ''elephantine Mass'' Clogging Our Judicial System. Senator Specter Has Worked In A Bipartisan Fashion To Reauthorize Key Provisions Of The USA PATRIOT Act, An Important Tool In The U.S. War On Terror. He Has Also Authored Legislation To Help Consumers Better Protect The Privacy Of Their Personal Information In The Face Of Recurrent Data Security Breaches Across The Country. On The Judiciary Committee, Senator Specter Built On His Foundation As A Lawyer And Former District Attorney. He Was The Author Of The Armed Career Criminal Act, Which Has Been Praised For Its Long Prison Terms For Repeat Offenders, And The Terrorist Prosecution Act, Which Authorizes Criminal Actions In U.S. Courts For Assaulting, Maiming, Or Murdering Americans Anywhere In The World. As A Senior Member Of The Appropriations Committee, Senator Specter Was Chairman Of The Senate Appropriations Subcommittee On Labor, Health And Human Services, And Education. This Subcommittee Oversees Federal Funding For The National Institutes Of Health (NIH), The Centers For Disease Control, Educational Programs Like Head Start, Pell Grants, And GEAR-UP, And Worker Safety Programs. Under His Leadership, Funding For Education Has Increased By More Than 130 Percent. Senator Specter Was Also Instrumental In Doubling The Budget For NIH, Which Has Made Major Advances In Curing Parkinson's, Cancer, Heart Disease, And Delaying The Onset Of Alzheimer's. Finally, Senator Specter Is A Strong Proponent Of Stem Cell Research For The Purposes Of Discovering Knowledge That May Lead To Cures For These Same Ailments. Strengthening Our Nation's Security Has Been A Longstanding Priority Of Senator Specter's. Thirty Days After The Terrorist Attacks Of September 11, 2001, Senator Specter Drafted The Legislation That Established The Department Of Homeland Security. While Serving As Chairman Of The Senate Intelligence Committee In The 104th Congress, He Authored The Bill Creating The Inspector General Of The Central Intelligence Agency, Marking The Only Reform Legislation To Emerge From The Iran-Contra Affair. Senator Specter Continues His Strong Advocacy For Veterans, A Passion Born From The First Veteran He Ever Knew, His Father, Harry Specter, Who Was Wounded In World War I. As A Former Chairman Of The Veterans Committee, He Pushed For Just Treatment For Veterans And Increased Benefits. Working Closely With The Secretary Of Veterans Affairs, Senator Specter Oversaw The Opening Of Four New Veterans Outpatient Clinics In Fayette, Northampton, Venango, And Warren Counties And Passed Legislation To Create A New Veterans Cemetery In Southeastern Pennsylvania. A Frequent Visitor To All Of Pennsylvania's 67 Counties, Senator Specter Places Constituent Service High On His Priorities And Has Been Instrumental On The Appropriations Committee In Promoting Pennsylvania's Interests In Agriculture, High-technology, Steel, Coal, Tourism, Mass Transit, Highways, And Military Installations. In Addition To Tackling The Major Legislative Business Before The Senate, Senator Specter Also Engaged In A Personal Battle With Stage IV-B Hodgkin's Lymphoma Cancer In 2005 And 2008. In Both Cases He Underwent Nearly 5 Months Of Chemotherapy, But Still Maintained All Of His Senatorial Duties, Including Chairing Hearings, Voting, And Brokering Important Legislative Initiatives. In July 2008, Senator Specter Received His Last Chemotherapy Treatment And Has Since Received A Clean Bill Of Health. Senator Specter Was Born To Immigrant Parents In Wichita, KS, And Grew Up In The Small Town Of Russell, KS. He Is A Phi Beta Kappa Graduate Of The University Of Pennsylvania And Served As An Editor Of The Yale Law Journal. He Began His Career In Public Service As An Assistant Philadelphia District Attorney. While Serving In That Position, He Was Named Assistant Counsel On The Warren Commission Investigation Into President Kennedy's Assassination. Two Years Later, Senator Specter Was Elected District Attorney Of Philadelphia At The Age Of 35. Senator Specter Lives In Philadelphia With His Wife Joan. They Have Two Sons, Shanin And Steve, And Four Grandchildren, Silvi, Perri, Lilli, And Hatti. Farewell To The Senate Tuesday, December 21, 2010 Mr. SPECTER. Madam President, This Is Not A Farewell Address But, Rather, A Closing Argument To A Jury Of My Colleagues And The American People Outlining My Views On How The Senate And, With It, The Federal Government Arrived At Its Current Condition Of Partisan Gridlock, And My Suggestions On Where We Go From Here On That Pressing Problem And The Key Issues Of National And International Importance. To Make A Final Floor Statement Is A Challenge. The Washington Post Noted The Poor Attendance At My Colleagues' Farewell Speeches Earlier This Month. That Is Really Not Surprising Since There Is Hardly Anyone Ever On The Senate Floor. The Days Of Lively Debate With Many Members On The Floor Are Long Gone. Abuse Of The Senate Rules Has Pretty Much Stripped Senators Of The Right To Offer Amendments. The Modern Filibuster Requires Only A Threat And No Talking. So The Senate's Activity For More Than A Decade Has Been The Virtual Continuous Drone Of A Quorum Call. But That Is Not The Way It Was When Senator Chris Dodd And I Were Privileged To Enter The World's Greatest Deliberative Body 30 Years Ago. Senators On Both Sides Of The Aisle Engaged In Collegial Debate And Found Ways To Find Common Ground On The Nation's Pressing Problems. When I Attended My First Republican Moderates Luncheon, I Met Mark Hatfield, John Chafee, Ted Stevens, Mac Mathias, Bob Stafford, Bob Packwood, Chuck Percy, Bill Cohen, Warren Rudman, Alan Simpson, Jack Danforth, John Warner, Nancy Kassebaum, Slade Gorton, And I Found My Colleague John Heinz There. That Is A Far Cry From Later Years When The Moderates Could Fit Into A Telephone Booth. On The Other Side Of The Aisle, I Found Many Democratic Senators Willing To Move To The Center To Craft Legislation” Metadata:
- Title: ➤ TRIBUTES TO HON. ARLEN SPECTER Arlen Specter U.S. SENATOR FROM PENNSYLVANIA TRIBUTES IN THE CONGRESS OF THE UNITED STATES [GRAPHIC] [TIFF OMITTED] TONGRESS.#15 Arlen Specter ? Tributes Delivered In Congress Arlen Specter United States Senator 1981-2011 A ? Compiled Under The Direction Of The Joint Committee On Printing CONTENTS Biography............................................. V Farewell To The Senate................................ Xi Proceedings In The Senate: Tributes By Senators: Akaka, Daniel K., Of Hawaii.................... 12 Alexander, Lamar, Of Tennessee................. 3 Bennet, Michael F., Of Colorado................ 21 Boxer, Barbara, Of California.................. 23 Casey, Robert P., Jr., Of Pennsylvania......... 15, 24 Cochran, Thad, Of Mississippi.................. 19 Conrad, Kent, Of North Dakota.................. 8 Dodd, Christopher J., Of Connecticut........... 11 Durbin, Richard, Of Illinois................... 11, 17 Enzi, Michael B., Of Wyoming................... 9 Harkin, Tom, Of Iowa........................... 22 Hatch, Orrin G., Of Utah....................... 13 Levin, Carl, Of Michigan....................... 5 Murkowski, Lisa, Of Alaska..................... 26 Reed, Jack, Of Rhode Island.................... 5 Reid, Harry, Of Nevada......................... 5, 7 Sessions, Jeff, Of Alabama..................... 20 Udall, Mark, Of Colorado....................... 22 Warner, Mark R., Of Virginia................... 5 BIOGRAPHY Since First Elected In 1980, Arlen Specter Has Brought Rugged Individualism And Fierce Independence Learned From His Youth On The Kansas Plains To Become A Leading Senate Moderate. His Work As Philadelphia's Tough District Attorney Gave Him Insights To Write The Terrorist Prosecution Act, The Armed Career Criminal Act, And Coauthor The Second Chance Act. His Legal Background And Experience In Constitutional Law Provided The Skills To Serve As Judiciary Chairman During The Confirmation Hearings Of Chief Justice Roberts And Justice Alito. In Earlier Confirmation Hearings He Had The Courage To Cross Party Lines In Opposing Judge Bork And Disagreeing With Conventional Wisdom In Supporting Justice Thomas After Dissecting The Contradictory And Highly Charged Testimony. As A Consummate Legislator, He Has Counseled Compromise And Conciliation In A Congress That Has Established New Records For Partisan Discord. In Foreign Affairs, He Has Advocated Dialogue And Accommodation As An Antidote To Belligerency And Saber Rattling. Arlen Specter's Five Terms Have Made Him The Longest Serving U.S. Senator In Pennsylvania's History. A Voice Of Reason, His Independence And Balance Have Won Endorsements From The AFL-CIO And High Marks From The U.S. Chamber Of Commerce, The National Association Of Manufacturers, And The Americans For Tax Reform. Time Magazine Listed Him Among The Ten Best Senators In 2006. Knowlegis Rated Him The Second Most Powerful Senator In 2006 Behind Only Majority Leader Bill Frist. A November 11, 2007 Philadelphia Inquirer Editorial Stated: ''Senator Arlen Specter Has More Clout Than Some Sovereign Nations.'' Senator Specter Attributes His Zeal For Public Service To His Experience As A Child When He Saw The Government Mistreat His Father, Harry Specter, Who Migrated To The United States From Russia In 1911. Private Specter, Serving In World War I In The Infantry, Was Seriously Wounded In Action In France's Argonne Forest. When The Government Broke Its Promise To Pay World War I Veterans A 00 Bonus, The Veterans Marched On Washington. President Hoover Called Out The Army Which Fired On And Killed Veterans On The Mall In One Of The Blackest Days In American History. As A Metaphor, Senator Specter Says He Has Been On His Way To Washington Ever Since To Get His Father's Bonus And Since He Hasn't Gotten It Yet, He's Running For Reelection. The Incident Over His Father's Bonus Has Made Arlen Specter A Fierce Advocate For Veterans' Benefits And The ''little Guy'' In His Battles With The Federal Government. From His Immigrant Parents, Arlen Specter Learned Work Ethics The Hard Way. His Father, Harry Specter, Who Was A Peddler, Took 5-year-old Arlen To Small Kansas Towns Selling Cantaloupes Door To Door With A Small Basket In Hand. In His Dad's Junkyard In Russell, KS, 16-year-old Arlen Specter Cut Down Oil Derricks With An Acetylene Torch And Loaded Scrap Iron Into Rail Freight Cars Headed For The Smelter. His Credentials Include Votes For The Line-item Veto And A Constitutional Amendment For A Balanced Budget. As A Two-term Philadelphia District Attorney, He Fought For Tough Sentences For Tough Criminals And Later, In The Senate, Wrote Groundbreaking Legislation Providing For Life Sentences For Three-time Recidivists On Violent Crimes. Since 1981, He Has Played A Significant Role In Supreme Court Nomination Hearings, For Chief Justice Rehnquist, Justices O'Connor, Scalia, Kennedy, Souter, Thomas, Ginsberg, Breyer, And Judge Bork. Notwithstanding Debilitating Chemotherapy Treatments In 2005, He Stayed On The Job As Chairman Of The Judiciary Committee To Preside Over Historic Supreme Court Confirmation Hearings. His Work On The Judiciary Committee Has Included Writing Significant Legislation On Dealing With Constitutional Law, Civil Rights, And Privacy. As A Senior Member Of The Appropriations Committee, He Led The Fight To Increase Funding For The National Institutes Of Health From 2 Billion To 0 Billion To Expand Medical Research To Find Cures For Cancer, Heart Disease, Alzheimer's, Parkinson's, And Other Maladies. He Has Supported Expanding Health Care For Seniors And Children And Has Proposed Legislation To Cover The Almost 50 Million Americans Who Do Not Have Health Insurance. Because Senator Specter Is Keenly Aware Of The Importance Of Understanding The Younger Generation, He Often Visits And Speaks At Universities And High Schools. He Credits His Parents, Both Immigrants, With Emphasizing The Importance Of Education Which Has Enabled His Brother, Two Sisters, And Himself To Share In The American Dream. To Empower Others With Access To Education, He Led The Fight On The Appropriations Subcommittee To Increase Federal Spending By 138 Percent And Raise Funding For Scholarships And Student Loans. Constituent Service And Promoting Pennsylvania's Economic Interests Have Been The Hallmarks Of Senator Specter's Senate Career. He Maintained Offices In Philadelphia, Pittsburgh, Harrisburg, Erie, Scranton, Wilkes-Barre, And The Lehigh Valley To Help Residents Of Those Areas Who Needed Assistance To Cut Washington's Redtape. From His Experience As A Teenager Working On A Farm In Kansas, The State Where He Was Born, Senator Specter Has Understood And Worked On The Problems Of Pennsylvania's Farmers From His Position On The Appropriations Subcommittee On Agriculture. He Frequently Argues In The International Trade Commission To Assist The Steel Industry From Being Deluged With Unfair Foreign Imports. His Proposed Legislation, Endorsed By Both Business And Labor, Would Create A Private Right Of Action In Federal Courts To Stop Subsidized Or Dumped Products From Being Imported Into The United States. He Has Supported The Coal Industry By Promoting Legislation For Clean Coal Technology And Securing 00 Million For A Schuylkill County Project To Turn Sludge Into High Octane, Environmentally Safe Gasoline. Recognizing The Long-term Effects Of Global Warming, He Has Cosponsored The Bingaman-Specter Bill To Reduce Harm From Carbon Emissions. As Chairman Of The Intelligence Committee In The 104th Congress And A Member Of The Appropriations Subcommittee On Foreign Operations, Senator Specter Traveled Extensively Meeting With World Leaders Including Soviet President Mikhail Gorbachev; French President Francois Mitterrand; Israel's Prime Ministers Menachem Begin, Yitzhak Shamir, Yitzhak Rabin, Shimon Peres, Benjamin Netanyahu, Ehud Barak, Ariel Sharon, And Ehud Olmert; China's President Hu Jintao; Indian Prime Minister Singh; Pakistan's Prime Ministers Benazir Bhutto, Mohammad Zia, And Pervez Musharraf; Jordan's Kings Hussein And Abdullah; And Egyptian President Hosni Mubarak. Strongly Agreeing With Moshe Dayan's Famous Statement That We Make Peace With Our Enemies Not Our Friends, He Has Met With Syria's Presidents Hafez Al-Assad And Bashar Al-Assad; The Palestinian Authority's Chairman Yasser Arafat; Iraq's President Saddam Hussein; Cuba's President Fidel Castro; Libya's Leader Muammar Qadhafi; And Venezuela President Hugo Chavez. From These Meetings And His Studies Of Foreign Affairs Since His Undergraduate Days At The University Of Pennsylvania, Where He Majored In Political Science And International Relations, Senator Specter Has Been A Forceful Advocate For Aggressive Diplomacy To Solve International Conflicts. He Wrote, With Staffer Chris Bradish, An Article For The Washington Quarterly (Winter 2006-2007), Outlining A Blueprint For Diplomatic Initiatives In The Mideast With Emphasis On Bilateral Negotiations With Iran And Syria. Similarly, He Has Urged Bilateral, As Well As Multilateral, Negotiations With North Korea. Early In His Senate Career In 1982, He Was Among The First To Call For A U.S./U.S.S.R. Summit In A Resolution Which Passed The Senate 90 To 8. He Participated Extensively With The Senate Observers At The Geneva Arms Reduction Talks In The 1980s And Led The Fight For The Broad Interpretation Of The ABM Treaty. Senator Specter Consistently Supported Appropriations To Fight Global AIDS And Promoted Worldwide Support For Underdeveloped Countries Including Free Trade Agreements. Arlen Specter Was Elected To The U.S. Senate In 1980 And Served Five Terms. In 2005, Senator Specter Became Pennsylvania's Longest Serving U.S. Senator. He Was A Senior Member Of The Senate Judiciary, Appropriations, And Veterans Affairs Committees. Senator Specter Was A Member Of The Senate Judiciary Committee Since He Came To The Senate. As Such, He Played An Instrumental Role In Many Of The Senate's Most Important Issues, Including The Confirmations Of Chief Justice John G. Roberts, Jr. And Justice Samuel Alito To Serve As Associate Justice On The U.S. Supreme Court. Senator Specter Also Shepherded Through The Judiciary Committee Legislation On Asbestos Litigation Reform To Absolve What The Supreme Court Once Called An ''elephantine Mass'' Clogging Our Judicial System. Senator Specter Has Worked In A Bipartisan Fashion To Reauthorize Key Provisions Of The USA PATRIOT Act, An Important Tool In The U.S. War On Terror. He Has Also Authored Legislation To Help Consumers Better Protect The Privacy Of Their Personal Information In The Face Of Recurrent Data Security Breaches Across The Country. On The Judiciary Committee, Senator Specter Built On His Foundation As A Lawyer And Former District Attorney. He Was The Author Of The Armed Career Criminal Act, Which Has Been Praised For Its Long Prison Terms For Repeat Offenders, And The Terrorist Prosecution Act, Which Authorizes Criminal Actions In U.S. Courts For Assaulting, Maiming, Or Murdering Americans Anywhere In The World. As A Senior Member Of The Appropriations Committee, Senator Specter Was Chairman Of The Senate Appropriations Subcommittee On Labor, Health And Human Services, And Education. This Subcommittee Oversees Federal Funding For The National Institutes Of Health (NIH), The Centers For Disease Control, Educational Programs Like Head Start, Pell Grants, And GEAR-UP, And Worker Safety Programs. Under His Leadership, Funding For Education Has Increased By More Than 130 Percent. Senator Specter Was Also Instrumental In Doubling The Budget For NIH, Which Has Made Major Advances In Curing Parkinson's, Cancer, Heart Disease, And Delaying The Onset Of Alzheimer's. Finally, Senator Specter Is A Strong Proponent Of Stem Cell Research For The Purposes Of Discovering Knowledge That May Lead To Cures For These Same Ailments. Strengthening Our Nation's Security Has Been A Longstanding Priority Of Senator Specter's. Thirty Days After The Terrorist Attacks Of September 11, 2001, Senator Specter Drafted The Legislation That Established The Department Of Homeland Security. While Serving As Chairman Of The Senate Intelligence Committee In The 104th Congress, He Authored The Bill Creating The Inspector General Of The Central Intelligence Agency, Marking The Only Reform Legislation To Emerge From The Iran-Contra Affair. Senator Specter Continues His Strong Advocacy For Veterans, A Passion Born From The First Veteran He Ever Knew, His Father, Harry Specter, Who Was Wounded In World War I. As A Former Chairman Of The Veterans Committee, He Pushed For Just Treatment For Veterans And Increased Benefits. Working Closely With The Secretary Of Veterans Affairs, Senator Specter Oversaw The Opening Of Four New Veterans Outpatient Clinics In Fayette, Northampton, Venango, And Warren Counties And Passed Legislation To Create A New Veterans Cemetery In Southeastern Pennsylvania. A Frequent Visitor To All Of Pennsylvania's 67 Counties, Senator Specter Places Constituent Service High On His Priorities And Has Been Instrumental On The Appropriations Committee In Promoting Pennsylvania's Interests In Agriculture, High-technology, Steel, Coal, Tourism, Mass Transit, Highways, And Military Installations. In Addition To Tackling The Major Legislative Business Before The Senate, Senator Specter Also Engaged In A Personal Battle With Stage IV-B Hodgkin's Lymphoma Cancer In 2005 And 2008. In Both Cases He Underwent Nearly 5 Months Of Chemotherapy, But Still Maintained All Of His Senatorial Duties, Including Chairing Hearings, Voting, And Brokering Important Legislative Initiatives. In July 2008, Senator Specter Received His Last Chemotherapy Treatment And Has Since Received A Clean Bill Of Health. Senator Specter Was Born To Immigrant Parents In Wichita, KS, And Grew Up In The Small Town Of Russell, KS. He Is A Phi Beta Kappa Graduate Of The University Of Pennsylvania And Served As An Editor Of The Yale Law Journal. He Began His Career In Public Service As An Assistant Philadelphia District Attorney. While Serving In That Position, He Was Named Assistant Counsel On The Warren Commission Investigation Into President Kennedy's Assassination. Two Years Later, Senator Specter Was Elected District Attorney Of Philadelphia At The Age Of 35. Senator Specter Lives In Philadelphia With His Wife Joan. They Have Two Sons, Shanin And Steve, And Four Grandchildren, Silvi, Perri, Lilli, And Hatti. Farewell To The Senate Tuesday, December 21, 2010 Mr. SPECTER. Madam President, This Is Not A Farewell Address But, Rather, A Closing Argument To A Jury Of My Colleagues And The American People Outlining My Views On How The Senate And, With It, The Federal Government Arrived At Its Current Condition Of Partisan Gridlock, And My Suggestions On Where We Go From Here On That Pressing Problem And The Key Issues Of National And International Importance. To Make A Final Floor Statement Is A Challenge. The Washington Post Noted The Poor Attendance At My Colleagues' Farewell Speeches Earlier This Month. That Is Really Not Surprising Since There Is Hardly Anyone Ever On The Senate Floor. The Days Of Lively Debate With Many Members On The Floor Are Long Gone. Abuse Of The Senate Rules Has Pretty Much Stripped Senators Of The Right To Offer Amendments. The Modern Filibuster Requires Only A Threat And No Talking. So The Senate's Activity For More Than A Decade Has Been The Virtual Continuous Drone Of A Quorum Call. But That Is Not The Way It Was When Senator Chris Dodd And I Were Privileged To Enter The World's Greatest Deliberative Body 30 Years Ago. Senators On Both Sides Of The Aisle Engaged In Collegial Debate And Found Ways To Find Common Ground On The Nation's Pressing Problems. When I Attended My First Republican Moderates Luncheon, I Met Mark Hatfield, John Chafee, Ted Stevens, Mac Mathias, Bob Stafford, Bob Packwood, Chuck Percy, Bill Cohen, Warren Rudman, Alan Simpson, Jack Danforth, John Warner, Nancy Kassebaum, Slade Gorton, And I Found My Colleague John Heinz There. That Is A Far Cry From Later Years When The Moderates Could Fit Into A Telephone Booth. On The Other Side Of The Aisle, I Found Many Democratic Senators Willing To Move To The Center To Craft Legislation
- Author: Committee on Appropriations
- Language: English
“TRIBUTES TO HON. ARLEN SPECTER Arlen Specter U.S. SENATOR FROM PENNSYLVANIA TRIBUTES IN THE CONGRESS OF THE UNITED STATES [GRAPHIC] [TIFF OMITTED] TONGRESS.#15 Arlen Specter ? Tributes Delivered In Congress Arlen Specter United States Senator 1981-2011 A ? Compiled Under The Direction Of The Joint Committee On Printing CONTENTS Biography............................................. V Farewell To The Senate................................ Xi Proceedings In The Senate: Tributes By Senators: Akaka, Daniel K., Of Hawaii.................... 12 Alexander, Lamar, Of Tennessee................. 3 Bennet, Michael F., Of Colorado................ 21 Boxer, Barbara, Of California.................. 23 Casey, Robert P., Jr., Of Pennsylvania......... 15, 24 Cochran, Thad, Of Mississippi.................. 19 Conrad, Kent, Of North Dakota.................. 8 Dodd, Christopher J., Of Connecticut........... 11 Durbin, Richard, Of Illinois................... 11, 17 Enzi, Michael B., Of Wyoming................... 9 Harkin, Tom, Of Iowa........................... 22 Hatch, Orrin G., Of Utah....................... 13 Levin, Carl, Of Michigan....................... 5 Murkowski, Lisa, Of Alaska..................... 26 Reed, Jack, Of Rhode Island.................... 5 Reid, Harry, Of Nevada......................... 5, 7 Sessions, Jeff, Of Alabama..................... 20 Udall, Mark, Of Colorado....................... 22 Warner, Mark R., Of Virginia................... 5 BIOGRAPHY Since First Elected In 1980, Arlen Specter Has Brought Rugged Individualism And Fierce Independence Learned From His Youth On The Kansas Plains To Become A Leading Senate Moderate. His Work As Philadelphia's Tough District Attorney Gave Him Insights To Write The Terrorist Prosecution Act, The Armed Career Criminal Act, And Coauthor The Second Chance Act. His Legal Background And Experience In Constitutional Law Provided The Skills To Serve As Judiciary Chairman During The Confirmation Hearings Of Chief Justice Roberts And Justice Alito. In Earlier Confirmation Hearings He Had The Courage To Cross Party Lines In Opposing Judge Bork And Disagreeing With Conventional Wisdom In Supporting Justice Thomas After Dissecting The Contradictory And Highly Charged Testimony. As A Consummate Legislator, He Has Counseled Compromise And Conciliation In A Congress That Has Established New Records For Partisan Discord. In Foreign Affairs, He Has Advocated Dialogue And Accommodation As An Antidote To Belligerency And Saber Rattling. Arlen Specter's Five Terms Have Made Him The Longest Serving U.S. Senator In Pennsylvania's History. A Voice Of Reason, His Independence And Balance Have Won Endorsements From The AFL-CIO And High Marks From The U.S. Chamber Of Commerce, The National Association Of Manufacturers, And The Americans For Tax Reform. Time Magazine Listed Him Among The Ten Best Senators In 2006. Knowlegis Rated Him The Second Most Powerful Senator In 2006 Behind Only Majority Leader Bill Frist. A November 11, 2007 Philadelphia Inquirer Editorial Stated: ''Senator Arlen Specter Has More Clout Than Some Sovereign Nations.'' Senator Specter Attributes His Zeal For Public Service To His Experience As A Child When He Saw The Government Mistreat His Father, Harry Specter, Who Migrated To The United States From Russia In 1911. Private Specter, Serving In World War I In The Infantry, Was Seriously Wounded In Action In France's Argonne Forest. When The Government Broke Its Promise To Pay World War I Veterans A 00 Bonus, The Veterans Marched On Washington. President Hoover Called Out The Army Which Fired On And Killed Veterans On The Mall In One Of The Blackest Days In American History. As A Metaphor, Senator Specter Says He Has Been On His Way To Washington Ever Since To Get His Father's Bonus And Since He Hasn't Gotten It Yet, He's Running For Reelection. The Incident Over His Father's Bonus Has Made Arlen Specter A Fierce Advocate For Veterans' Benefits And The ''little Guy'' In His Battles With The Federal Government. From His Immigrant Parents, Arlen Specter Learned Work Ethics The Hard Way. His Father, Harry Specter, Who Was A Peddler, Took 5-year-old Arlen To Small Kansas Towns Selling Cantaloupes Door To Door With A Small Basket In Hand. In His Dad's Junkyard In Russell, KS, 16-year-old Arlen Specter Cut Down Oil Derricks With An Acetylene Torch And Loaded Scrap Iron Into Rail Freight Cars Headed For The Smelter. His Credentials Include Votes For The Line-item Veto And A Constitutional Amendment For A Balanced Budget. As A Two-term Philadelphia District Attorney, He Fought For Tough Sentences For Tough Criminals And Later, In The Senate, Wrote Groundbreaking Legislation Providing For Life Sentences For Three-time Recidivists On Violent Crimes. Since 1981, He Has Played A Significant Role In Supreme Court Nomination Hearings, For Chief Justice Rehnquist, Justices O'Connor, Scalia, Kennedy, Souter, Thomas, Ginsberg, Breyer, And Judge Bork. Notwithstanding Debilitating Chemotherapy Treatments In 2005, He Stayed On The Job As Chairman Of The Judiciary Committee To Preside Over Historic Supreme Court Confirmation Hearings. His Work On The Judiciary Committee Has Included Writing Significant Legislation On Dealing With Constitutional Law, Civil Rights, And Privacy. As A Senior Member Of The Appropriations Committee, He Led The Fight To Increase Funding For The National Institutes Of Health From 2 Billion To 0 Billion To Expand Medical Research To Find Cures For Cancer, Heart Disease, Alzheimer's, Parkinson's, And Other Maladies. He Has Supported Expanding Health Care For Seniors And Children And Has Proposed Legislation To Cover The Almost 50 Million Americans Who Do Not Have Health Insurance. Because Senator Specter Is Keenly Aware Of The Importance Of Understanding The Younger Generation, He Often Visits And Speaks At Universities And High Schools. He Credits His Parents, Both Immigrants, With Emphasizing The Importance Of Education Which Has Enabled His Brother, Two Sisters, And Himself To Share In The American Dream. To Empower Others With Access To Education, He Led The Fight On The Appropriations Subcommittee To Increase Federal Spending By 138 Percent And Raise Funding For Scholarships And Student Loans. Constituent Service And Promoting Pennsylvania's Economic Interests Have Been The Hallmarks Of Senator Specter's Senate Career. He Maintained Offices In Philadelphia, Pittsburgh, Harrisburg, Erie, Scranton, Wilkes-Barre, And The Lehigh Valley To Help Residents Of Those Areas Who Needed Assistance To Cut Washington's Redtape. From His Experience As A Teenager Working On A Farm In Kansas, The State Where He Was Born, Senator Specter Has Understood And Worked On The Problems Of Pennsylvania's Farmers From His Position On The Appropriations Subcommittee On Agriculture. He Frequently Argues In The International Trade Commission To Assist The Steel Industry From Being Deluged With Unfair Foreign Imports. His Proposed Legislation, Endorsed By Both Business And Labor, Would Create A Private Right Of Action In Federal Courts To Stop Subsidized Or Dumped Products From Being Imported Into The United States. He Has Supported The Coal Industry By Promoting Legislation For Clean Coal Technology And Securing 00 Million For A Schuylkill County Project To Turn Sludge Into High Octane, Environmentally Safe Gasoline. Recognizing The Long-term Effects Of Global Warming, He Has Cosponsored The Bingaman-Specter Bill To Reduce Harm From Carbon Emissions. As Chairman Of The Intelligence Committee In The 104th Congress And A Member Of The Appropriations Subcommittee On Foreign Operations, Senator Specter Traveled Extensively Meeting With World Leaders Including Soviet President Mikhail Gorbachev; French President Francois Mitterrand; Israel's Prime Ministers Menachem Begin, Yitzhak Shamir, Yitzhak Rabin, Shimon Peres, Benjamin Netanyahu, Ehud Barak, Ariel Sharon, And Ehud Olmert; China's President Hu Jintao; Indian Prime Minister Singh; Pakistan's Prime Ministers Benazir Bhutto, Mohammad Zia, And Pervez Musharraf; Jordan's Kings Hussein And Abdullah; And Egyptian President Hosni Mubarak. Strongly Agreeing With Moshe Dayan's Famous Statement That We Make Peace With Our Enemies Not Our Friends, He Has Met With Syria's Presidents Hafez Al-Assad And Bashar Al-Assad; The Palestinian Authority's Chairman Yasser Arafat; Iraq's President Saddam Hussein; Cuba's President Fidel Castro; Libya's Leader Muammar Qadhafi; And Venezuela President Hugo Chavez. From These Meetings And His Studies Of Foreign Affairs Since His Undergraduate Days At The University Of Pennsylvania, Where He Majored In Political Science And International Relations, Senator Specter Has Been A Forceful Advocate For Aggressive Diplomacy To Solve International Conflicts. He Wrote, With Staffer Chris Bradish, An Article For The Washington Quarterly (Winter 2006-2007), Outlining A Blueprint For Diplomatic Initiatives In The Mideast With Emphasis On Bilateral Negotiations With Iran And Syria. Similarly, He Has Urged Bilateral, As Well As Multilateral, Negotiations With North Korea. Early In His Senate Career In 1982, He Was Among The First To Call For A U.S./U.S.S.R. Summit In A Resolution Which Passed The Senate 90 To 8. He Participated Extensively With The Senate Observers At The Geneva Arms Reduction Talks In The 1980s And Led The Fight For The Broad Interpretation Of The ABM Treaty. Senator Specter Consistently Supported Appropriations To Fight Global AIDS And Promoted Worldwide Support For Underdeveloped Countries Including Free Trade Agreements. Arlen Specter Was Elected To The U.S. Senate In 1980 And Served Five Terms. In 2005, Senator Specter Became Pennsylvania's Longest Serving U.S. Senator. He Was A Senior Member Of The Senate Judiciary, Appropriations, And Veterans Affairs Committees. Senator Specter Was A Member Of The Senate Judiciary Committee Since He Came To The Senate. As Such, He Played An Instrumental Role In Many Of The Senate's Most Important Issues, Including The Confirmations Of Chief Justice John G. Roberts, Jr. And Justice Samuel Alito To Serve As Associate Justice On The U.S. Supreme Court. Senator Specter Also Shepherded Through The Judiciary Committee Legislation On Asbestos Litigation Reform To Absolve What The Supreme Court Once Called An ''elephantine Mass'' Clogging Our Judicial System. Senator Specter Has Worked In A Bipartisan Fashion To Reauthorize Key Provisions Of The USA PATRIOT Act, An Important Tool In The U.S. War On Terror. He Has Also Authored Legislation To Help Consumers Better Protect The Privacy Of Their Personal Information In The Face Of Recurrent Data Security Breaches Across The Country. On The Judiciary Committee, Senator Specter Built On His Foundation As A Lawyer And Former District Attorney. He Was The Author Of The Armed Career Criminal Act, Which Has Been Praised For Its Long Prison Terms For Repeat Offenders, And The Terrorist Prosecution Act, Which Authorizes Criminal Actions In U.S. Courts For Assaulting, Maiming, Or Murdering Americans Anywhere In The World. As A Senior Member Of The Appropriations Committee, Senator Specter Was Chairman Of The Senate Appropriations Subcommittee On Labor, Health And Human Services, And Education. This Subcommittee Oversees Federal Funding For The National Institutes Of Health (NIH), The Centers For Disease Control, Educational Programs Like Head Start, Pell Grants, And GEAR-UP, And Worker Safety Programs. Under His Leadership, Funding For Education Has Increased By More Than 130 Percent. Senator Specter Was Also Instrumental In Doubling The Budget For NIH, Which Has Made Major Advances In Curing Parkinson's, Cancer, Heart Disease, And Delaying The Onset Of Alzheimer's. Finally, Senator Specter Is A Strong Proponent Of Stem Cell Research For The Purposes Of Discovering Knowledge That May Lead To Cures For These Same Ailments. Strengthening Our Nation's Security Has Been A Longstanding Priority Of Senator Specter's. Thirty Days After The Terrorist Attacks Of September 11, 2001, Senator Specter Drafted The Legislation That Established The Department Of Homeland Security. While Serving As Chairman Of The Senate Intelligence Committee In The 104th Congress, He Authored The Bill Creating The Inspector General Of The Central Intelligence Agency, Marking The Only Reform Legislation To Emerge From The Iran-Contra Affair. Senator Specter Continues His Strong Advocacy For Veterans, A Passion Born From The First Veteran He Ever Knew, His Father, Harry Specter, Who Was Wounded In World War I. As A Former Chairman Of The Veterans Committee, He Pushed For Just Treatment For Veterans And Increased Benefits. Working Closely With The Secretary Of Veterans Affairs, Senator Specter Oversaw The Opening Of Four New Veterans Outpatient Clinics In Fayette, Northampton, Venango, And Warren Counties And Passed Legislation To Create A New Veterans Cemetery In Southeastern Pennsylvania. A Frequent Visitor To All Of Pennsylvania's 67 Counties, Senator Specter Places Constituent Service High On His Priorities And Has Been Instrumental On The Appropriations Committee In Promoting Pennsylvania's Interests In Agriculture, High-technology, Steel, Coal, Tourism, Mass Transit, Highways, And Military Installations. In Addition To Tackling The Major Legislative Business Before The Senate, Senator Specter Also Engaged In A Personal Battle With Stage IV-B Hodgkin's Lymphoma Cancer In 2005 And 2008. In Both Cases He Underwent Nearly 5 Months Of Chemotherapy, But Still Maintained All Of His Senatorial Duties, Including Chairing Hearings, Voting, And Brokering Important Legislative Initiatives. In July 2008, Senator Specter Received His Last Chemotherapy Treatment And Has Since Received A Clean Bill Of Health. Senator Specter Was Born To Immigrant Parents In Wichita, KS, And Grew Up In The Small Town Of Russell, KS. He Is A Phi Beta Kappa Graduate Of The University Of Pennsylvania And Served As An Editor Of The Yale Law Journal. He Began His Career In Public Service As An Assistant Philadelphia District Attorney. While Serving In That Position, He Was Named Assistant Counsel On The Warren Commission Investigation Into President Kennedy's Assassination. Two Years Later, Senator Specter Was Elected District Attorney Of Philadelphia At The Age Of 35. Senator Specter Lives In Philadelphia With His Wife Joan. They Have Two Sons, Shanin And Steve, And Four Grandchildren, Silvi, Perri, Lilli, And Hatti. Farewell To The Senate Tuesday, December 21, 2010 Mr. SPECTER. Madam President, This Is Not A Farewell Address But, Rather, A Closing Argument To A Jury Of My Colleagues And The American People Outlining My Views On How The Senate And, With It, The Federal Government Arrived At Its Current Condition Of Partisan Gridlock, And My Suggestions On Where We Go From Here On That Pressing Problem And The Key Issues Of National And International Importance. To Make A Final Floor Statement Is A Challenge. The Washington Post Noted The Poor Attendance At My Colleagues' Farewell Speeches Earlier This Month. That Is Really Not Surprising Since There Is Hardly Anyone Ever On The Senate Floor. The Days Of Lively Debate With Many Members On The Floor Are Long Gone. Abuse Of The Senate Rules Has Pretty Much Stripped Senators Of The Right To Offer Amendments. The Modern Filibuster Requires Only A Threat And No Talking. So The Senate's Activity For More Than A Decade Has Been The Virtual Continuous Drone Of A Quorum Call. But That Is Not The Way It Was When Senator Chris Dodd And I Were Privileged To Enter The World's Greatest Deliberative Body 30 Years Ago. Senators On Both Sides Of The Aisle Engaged In Collegial Debate And Found Ways To Find Common Ground On The Nation's Pressing Problems. When I Attended My First Republican Moderates Luncheon, I Met Mark Hatfield, John Chafee, Ted Stevens, Mac Mathias, Bob Stafford, Bob Packwood, Chuck Percy, Bill Cohen, Warren Rudman, Alan Simpson, Jack Danforth, John Warner, Nancy Kassebaum, Slade Gorton, And I Found My Colleague John Heinz There. That Is A Far Cry From Later Years When The Moderates Could Fit Into A Telephone Booth. On The Other Side Of The Aisle, I Found Many Democratic Senators Willing To Move To The Center To Craft Legislation” Subjects and Themes:
Edition Identifiers:
- Internet Archive ID: ➤ gov.gpo.fdsys.CHRG-111shrg64816
Downloads Information:
The book is available for download in "texts" format, the size of the file-s is: 42.15 Mbs, the file-s for this book were downloaded 933 times, the file-s went public at Sun Jan 08 2017.
Available formats:
Abbyy GZ - Animated GIF - Archive BitTorrent - DjVuTXT - Djvu XML - EPUB - HTML - Item Tile - Metadata - Scandata - Single Page Processed JP2 ZIP - Text PDF -
Related Links:
- Whefi.com: Download
- Whefi.com: Review - Coverage
- Internet Archive: Details
- Internet Archive Link: Downloads
Online Marketplaces
Find TRIBUTES TO HON. ARLEN SPECTER Arlen Specter U.S. SENATOR FROM PENNSYLVANIA TRIBUTES IN THE CONGRESS OF THE UNITED STATES [GRAPHIC] [TIFF OMITTED] TONGRESS.#15 Arlen Specter ? Tributes Delivered In Congress Arlen Specter United States Senator 1981-2011 A ? Compiled Under The Direction Of The Joint Committee On Printing CONTENTS Biography............................................. V Farewell To The Senate................................ Xi Proceedings In The Senate: Tributes By Senators: Akaka, Daniel K., Of Hawaii.................... 12 Alexander, Lamar, Of Tennessee................. 3 Bennet, Michael F., Of Colorado................ 21 Boxer, Barbara, Of California.................. 23 Casey, Robert P., Jr., Of Pennsylvania......... 15, 24 Cochran, Thad, Of Mississippi.................. 19 Conrad, Kent, Of North Dakota.................. 8 Dodd, Christopher J., Of Connecticut........... 11 Durbin, Richard, Of Illinois................... 11, 17 Enzi, Michael B., Of Wyoming................... 9 Harkin, Tom, Of Iowa........................... 22 Hatch, Orrin G., Of Utah....................... 13 Levin, Carl, Of Michigan....................... 5 Murkowski, Lisa, Of Alaska..................... 26 Reed, Jack, Of Rhode Island.................... 5 Reid, Harry, Of Nevada......................... 5, 7 Sessions, Jeff, Of Alabama..................... 20 Udall, Mark, Of Colorado....................... 22 Warner, Mark R., Of Virginia................... 5 BIOGRAPHY Since First Elected In 1980, Arlen Specter Has Brought Rugged Individualism And Fierce Independence Learned From His Youth On The Kansas Plains To Become A Leading Senate Moderate. His Work As Philadelphia's Tough District Attorney Gave Him Insights To Write The Terrorist Prosecution Act, The Armed Career Criminal Act, And Coauthor The Second Chance Act. His Legal Background And Experience In Constitutional Law Provided The Skills To Serve As Judiciary Chairman During The Confirmation Hearings Of Chief Justice Roberts And Justice Alito. In Earlier Confirmation Hearings He Had The Courage To Cross Party Lines In Opposing Judge Bork And Disagreeing With Conventional Wisdom In Supporting Justice Thomas After Dissecting The Contradictory And Highly Charged Testimony. As A Consummate Legislator, He Has Counseled Compromise And Conciliation In A Congress That Has Established New Records For Partisan Discord. In Foreign Affairs, He Has Advocated Dialogue And Accommodation As An Antidote To Belligerency And Saber Rattling. Arlen Specter's Five Terms Have Made Him The Longest Serving U.S. Senator In Pennsylvania's History. A Voice Of Reason, His Independence And Balance Have Won Endorsements From The AFL-CIO And High Marks From The U.S. Chamber Of Commerce, The National Association Of Manufacturers, And The Americans For Tax Reform. Time Magazine Listed Him Among The Ten Best Senators In 2006. Knowlegis Rated Him The Second Most Powerful Senator In 2006 Behind Only Majority Leader Bill Frist. A November 11, 2007 Philadelphia Inquirer Editorial Stated: ''Senator Arlen Specter Has More Clout Than Some Sovereign Nations.'' Senator Specter Attributes His Zeal For Public Service To His Experience As A Child When He Saw The Government Mistreat His Father, Harry Specter, Who Migrated To The United States From Russia In 1911. Private Specter, Serving In World War I In The Infantry, Was Seriously Wounded In Action In France's Argonne Forest. When The Government Broke Its Promise To Pay World War I Veterans A 00 Bonus, The Veterans Marched On Washington. President Hoover Called Out The Army Which Fired On And Killed Veterans On The Mall In One Of The Blackest Days In American History. As A Metaphor, Senator Specter Says He Has Been On His Way To Washington Ever Since To Get His Father's Bonus And Since He Hasn't Gotten It Yet, He's Running For Reelection. The Incident Over His Father's Bonus Has Made Arlen Specter A Fierce Advocate For Veterans' Benefits And The ''little Guy'' In His Battles With The Federal Government. From His Immigrant Parents, Arlen Specter Learned Work Ethics The Hard Way. His Father, Harry Specter, Who Was A Peddler, Took 5-year-old Arlen To Small Kansas Towns Selling Cantaloupes Door To Door With A Small Basket In Hand. In His Dad's Junkyard In Russell, KS, 16-year-old Arlen Specter Cut Down Oil Derricks With An Acetylene Torch And Loaded Scrap Iron Into Rail Freight Cars Headed For The Smelter. His Credentials Include Votes For The Line-item Veto And A Constitutional Amendment For A Balanced Budget. As A Two-term Philadelphia District Attorney, He Fought For Tough Sentences For Tough Criminals And Later, In The Senate, Wrote Groundbreaking Legislation Providing For Life Sentences For Three-time Recidivists On Violent Crimes. Since 1981, He Has Played A Significant Role In Supreme Court Nomination Hearings, For Chief Justice Rehnquist, Justices O'Connor, Scalia, Kennedy, Souter, Thomas, Ginsberg, Breyer, And Judge Bork. Notwithstanding Debilitating Chemotherapy Treatments In 2005, He Stayed On The Job As Chairman Of The Judiciary Committee To Preside Over Historic Supreme Court Confirmation Hearings. His Work On The Judiciary Committee Has Included Writing Significant Legislation On Dealing With Constitutional Law, Civil Rights, And Privacy. As A Senior Member Of The Appropriations Committee, He Led The Fight To Increase Funding For The National Institutes Of Health From 2 Billion To 0 Billion To Expand Medical Research To Find Cures For Cancer, Heart Disease, Alzheimer's, Parkinson's, And Other Maladies. He Has Supported Expanding Health Care For Seniors And Children And Has Proposed Legislation To Cover The Almost 50 Million Americans Who Do Not Have Health Insurance. Because Senator Specter Is Keenly Aware Of The Importance Of Understanding The Younger Generation, He Often Visits And Speaks At Universities And High Schools. He Credits His Parents, Both Immigrants, With Emphasizing The Importance Of Education Which Has Enabled His Brother, Two Sisters, And Himself To Share In The American Dream. To Empower Others With Access To Education, He Led The Fight On The Appropriations Subcommittee To Increase Federal Spending By 138 Percent And Raise Funding For Scholarships And Student Loans. Constituent Service And Promoting Pennsylvania's Economic Interests Have Been The Hallmarks Of Senator Specter's Senate Career. He Maintained Offices In Philadelphia, Pittsburgh, Harrisburg, Erie, Scranton, Wilkes-Barre, And The Lehigh Valley To Help Residents Of Those Areas Who Needed Assistance To Cut Washington's Redtape. From His Experience As A Teenager Working On A Farm In Kansas, The State Where He Was Born, Senator Specter Has Understood And Worked On The Problems Of Pennsylvania's Farmers From His Position On The Appropriations Subcommittee On Agriculture. He Frequently Argues In The International Trade Commission To Assist The Steel Industry From Being Deluged With Unfair Foreign Imports. His Proposed Legislation, Endorsed By Both Business And Labor, Would Create A Private Right Of Action In Federal Courts To Stop Subsidized Or Dumped Products From Being Imported Into The United States. He Has Supported The Coal Industry By Promoting Legislation For Clean Coal Technology And Securing 00 Million For A Schuylkill County Project To Turn Sludge Into High Octane, Environmentally Safe Gasoline. Recognizing The Long-term Effects Of Global Warming, He Has Cosponsored The Bingaman-Specter Bill To Reduce Harm From Carbon Emissions. As Chairman Of The Intelligence Committee In The 104th Congress And A Member Of The Appropriations Subcommittee On Foreign Operations, Senator Specter Traveled Extensively Meeting With World Leaders Including Soviet President Mikhail Gorbachev; French President Francois Mitterrand; Israel's Prime Ministers Menachem Begin, Yitzhak Shamir, Yitzhak Rabin, Shimon Peres, Benjamin Netanyahu, Ehud Barak, Ariel Sharon, And Ehud Olmert; China's President Hu Jintao; Indian Prime Minister Singh; Pakistan's Prime Ministers Benazir Bhutto, Mohammad Zia, And Pervez Musharraf; Jordan's Kings Hussein And Abdullah; And Egyptian President Hosni Mubarak. Strongly Agreeing With Moshe Dayan's Famous Statement That We Make Peace With Our Enemies Not Our Friends, He Has Met With Syria's Presidents Hafez Al-Assad And Bashar Al-Assad; The Palestinian Authority's Chairman Yasser Arafat; Iraq's President Saddam Hussein; Cuba's President Fidel Castro; Libya's Leader Muammar Qadhafi; And Venezuela President Hugo Chavez. From These Meetings And His Studies Of Foreign Affairs Since His Undergraduate Days At The University Of Pennsylvania, Where He Majored In Political Science And International Relations, Senator Specter Has Been A Forceful Advocate For Aggressive Diplomacy To Solve International Conflicts. He Wrote, With Staffer Chris Bradish, An Article For The Washington Quarterly (Winter 2006-2007), Outlining A Blueprint For Diplomatic Initiatives In The Mideast With Emphasis On Bilateral Negotiations With Iran And Syria. Similarly, He Has Urged Bilateral, As Well As Multilateral, Negotiations With North Korea. Early In His Senate Career In 1982, He Was Among The First To Call For A U.S./U.S.S.R. Summit In A Resolution Which Passed The Senate 90 To 8. He Participated Extensively With The Senate Observers At The Geneva Arms Reduction Talks In The 1980s And Led The Fight For The Broad Interpretation Of The ABM Treaty. Senator Specter Consistently Supported Appropriations To Fight Global AIDS And Promoted Worldwide Support For Underdeveloped Countries Including Free Trade Agreements. Arlen Specter Was Elected To The U.S. Senate In 1980 And Served Five Terms. In 2005, Senator Specter Became Pennsylvania's Longest Serving U.S. Senator. He Was A Senior Member Of The Senate Judiciary, Appropriations, And Veterans Affairs Committees. Senator Specter Was A Member Of The Senate Judiciary Committee Since He Came To The Senate. As Such, He Played An Instrumental Role In Many Of The Senate's Most Important Issues, Including The Confirmations Of Chief Justice John G. Roberts, Jr. And Justice Samuel Alito To Serve As Associate Justice On The U.S. Supreme Court. Senator Specter Also Shepherded Through The Judiciary Committee Legislation On Asbestos Litigation Reform To Absolve What The Supreme Court Once Called An ''elephantine Mass'' Clogging Our Judicial System. Senator Specter Has Worked In A Bipartisan Fashion To Reauthorize Key Provisions Of The USA PATRIOT Act, An Important Tool In The U.S. War On Terror. He Has Also Authored Legislation To Help Consumers Better Protect The Privacy Of Their Personal Information In The Face Of Recurrent Data Security Breaches Across The Country. On The Judiciary Committee, Senator Specter Built On His Foundation As A Lawyer And Former District Attorney. He Was The Author Of The Armed Career Criminal Act, Which Has Been Praised For Its Long Prison Terms For Repeat Offenders, And The Terrorist Prosecution Act, Which Authorizes Criminal Actions In U.S. Courts For Assaulting, Maiming, Or Murdering Americans Anywhere In The World. As A Senior Member Of The Appropriations Committee, Senator Specter Was Chairman Of The Senate Appropriations Subcommittee On Labor, Health And Human Services, And Education. This Subcommittee Oversees Federal Funding For The National Institutes Of Health (NIH), The Centers For Disease Control, Educational Programs Like Head Start, Pell Grants, And GEAR-UP, And Worker Safety Programs. Under His Leadership, Funding For Education Has Increased By More Than 130 Percent. Senator Specter Was Also Instrumental In Doubling The Budget For NIH, Which Has Made Major Advances In Curing Parkinson's, Cancer, Heart Disease, And Delaying The Onset Of Alzheimer's. Finally, Senator Specter Is A Strong Proponent Of Stem Cell Research For The Purposes Of Discovering Knowledge That May Lead To Cures For These Same Ailments. Strengthening Our Nation's Security Has Been A Longstanding Priority Of Senator Specter's. Thirty Days After The Terrorist Attacks Of September 11, 2001, Senator Specter Drafted The Legislation That Established The Department Of Homeland Security. While Serving As Chairman Of The Senate Intelligence Committee In The 104th Congress, He Authored The Bill Creating The Inspector General Of The Central Intelligence Agency, Marking The Only Reform Legislation To Emerge From The Iran-Contra Affair. Senator Specter Continues His Strong Advocacy For Veterans, A Passion Born From The First Veteran He Ever Knew, His Father, Harry Specter, Who Was Wounded In World War I. As A Former Chairman Of The Veterans Committee, He Pushed For Just Treatment For Veterans And Increased Benefits. Working Closely With The Secretary Of Veterans Affairs, Senator Specter Oversaw The Opening Of Four New Veterans Outpatient Clinics In Fayette, Northampton, Venango, And Warren Counties And Passed Legislation To Create A New Veterans Cemetery In Southeastern Pennsylvania. A Frequent Visitor To All Of Pennsylvania's 67 Counties, Senator Specter Places Constituent Service High On His Priorities And Has Been Instrumental On The Appropriations Committee In Promoting Pennsylvania's Interests In Agriculture, High-technology, Steel, Coal, Tourism, Mass Transit, Highways, And Military Installations. In Addition To Tackling The Major Legislative Business Before The Senate, Senator Specter Also Engaged In A Personal Battle With Stage IV-B Hodgkin's Lymphoma Cancer In 2005 And 2008. In Both Cases He Underwent Nearly 5 Months Of Chemotherapy, But Still Maintained All Of His Senatorial Duties, Including Chairing Hearings, Voting, And Brokering Important Legislative Initiatives. In July 2008, Senator Specter Received His Last Chemotherapy Treatment And Has Since Received A Clean Bill Of Health. Senator Specter Was Born To Immigrant Parents In Wichita, KS, And Grew Up In The Small Town Of Russell, KS. He Is A Phi Beta Kappa Graduate Of The University Of Pennsylvania And Served As An Editor Of The Yale Law Journal. He Began His Career In Public Service As An Assistant Philadelphia District Attorney. While Serving In That Position, He Was Named Assistant Counsel On The Warren Commission Investigation Into President Kennedy's Assassination. Two Years Later, Senator Specter Was Elected District Attorney Of Philadelphia At The Age Of 35. Senator Specter Lives In Philadelphia With His Wife Joan. They Have Two Sons, Shanin And Steve, And Four Grandchildren, Silvi, Perri, Lilli, And Hatti. Farewell To The Senate Tuesday, December 21, 2010 Mr. SPECTER. Madam President, This Is Not A Farewell Address But, Rather, A Closing Argument To A Jury Of My Colleagues And The American People Outlining My Views On How The Senate And, With It, The Federal Government Arrived At Its Current Condition Of Partisan Gridlock, And My Suggestions On Where We Go From Here On That Pressing Problem And The Key Issues Of National And International Importance. To Make A Final Floor Statement Is A Challenge. The Washington Post Noted The Poor Attendance At My Colleagues' Farewell Speeches Earlier This Month. That Is Really Not Surprising Since There Is Hardly Anyone Ever On The Senate Floor. The Days Of Lively Debate With Many Members On The Floor Are Long Gone. Abuse Of The Senate Rules Has Pretty Much Stripped Senators Of The Right To Offer Amendments. The Modern Filibuster Requires Only A Threat And No Talking. So The Senate's Activity For More Than A Decade Has Been The Virtual Continuous Drone Of A Quorum Call. But That Is Not The Way It Was When Senator Chris Dodd And I Were Privileged To Enter The World's Greatest Deliberative Body 30 Years Ago. Senators On Both Sides Of The Aisle Engaged In Collegial Debate And Found Ways To Find Common Ground On The Nation's Pressing Problems. When I Attended My First Republican Moderates Luncheon, I Met Mark Hatfield, John Chafee, Ted Stevens, Mac Mathias, Bob Stafford, Bob Packwood, Chuck Percy, Bill Cohen, Warren Rudman, Alan Simpson, Jack Danforth, John Warner, Nancy Kassebaum, Slade Gorton, And I Found My Colleague John Heinz There. That Is A Far Cry From Later Years When The Moderates Could Fit Into A Telephone Booth. On The Other Side Of The Aisle, I Found Many Democratic Senators Willing To Move To The Center To Craft Legislation at online marketplaces:
- Amazon: Audiable, Kindle and printed editions.
- Ebay: New & used books.
2Richard N. Ojeda, II - Today I Got A Questionnaire From The National Right To Work Committee Asking Me How I Feel About Unions. I Figured Rather Than Send It In, I Would Just Let Them Know Today. Go To And Chip In $5 That Will Help Me Combat These Anti-worker Groups.
By Richard N. Ojeda, II
Today I got a questionnaire from the National Right to Work Committee asking me how I feel about unions. I figured rather than send it in, I would just let them know today. Go to https://t.co/zbfpNIyS4A and chip in $5 that will help me combat these anti-worker groups. https://t.co/kK7IqGkvHS Source: https://twitter.com/Ojeda4America/status/974390582385758213 Uploader: Richard N. Ojeda, II
“Richard N. Ojeda, II - Today I Got A Questionnaire From The National Right To Work Committee Asking Me How I Feel About Unions. I Figured Rather Than Send It In, I Would Just Let Them Know Today. Go To And Chip In $5 That Will Help Me Combat These Anti-worker Groups.” Metadata:
- Title: ➤ Richard N. Ojeda, II - Today I Got A Questionnaire From The National Right To Work Committee Asking Me How I Feel About Unions. I Figured Rather Than Send It In, I Would Just Let Them Know Today. Go To And Chip In $5 That Will Help Me Combat These Anti-worker Groups.
- Author: Richard N. Ojeda, II
“Richard N. Ojeda, II - Today I Got A Questionnaire From The National Right To Work Committee Asking Me How I Feel About Unions. I Figured Rather Than Send It In, I Would Just Let Them Know Today. Go To And Chip In $5 That Will Help Me Combat These Anti-worker Groups.” Subjects and Themes:
Edition Identifiers:
- Internet Archive ID: twitter-974390582385758213
Downloads Information:
The book is available for download in "movies" format, the size of the file-s is: 3.55 Mbs, the file-s for this book were downloaded 21 times, the file-s went public at Wed Dec 02 2020.
Available formats:
Archive BitTorrent - Item Tile - JPEG - JPEG Thumb - JSON - MPEG4 - Metadata - Thumbnail - Unknown -
Related Links:
- Whefi.com: Download
- Whefi.com: Review - Coverage
- Internet Archive: Details
- Internet Archive Link: Downloads
Online Marketplaces
Find Richard N. Ojeda, II - Today I Got A Questionnaire From The National Right To Work Committee Asking Me How I Feel About Unions. I Figured Rather Than Send It In, I Would Just Let Them Know Today. Go To And Chip In $5 That Will Help Me Combat These Anti-worker Groups. at online marketplaces:
- Amazon: Audiable, Kindle and printed editions.
- Ebay: New & used books.
3The Chromium Logo The Chromium Projects Home Chromium ChromiumOS Quick Links Report Bugs Discuss Other Sites Chromium Blog Google Chrome Extensions Except As Otherwise Noted, The Content Of This Page Is Licensed Under A Creative Commons Attribution 2.5 License, And Examples Are Licensed Under The BSD License. Privacy Edit This Page For Developers > How-Tos > Debugging Chromium On Windows First See Get The Code For Checkout And Build Instructions. Getting Started You Can Use Visual Studio's Built-in Debugger Or WinDBG To Debug Chromium. You Don't Need To Use The IDE To Build In Order To Use The Debugger: Autoninja Is Used To Build Chromium And Most Developers Invoke It From A Command Prompt, And Then Open The IDE For Debugging As Necessary. To Start Debugging An Already-built Executable With Visual Studio Just Launch Visual Studio (2019 Or Higher) And Select File-> Open-> Project/Solution (Ctrl+Shift+O) And Select The Executable Of Interest. This Will Create A Solution With That Executable As The 'project'. You Can Then Launch The Debugger With F5 Or F11 Or From The Debug Menu. If You Right-click On The Executable In Solution Explorer And Select Properties Then You Can Edit Things Such As The Executable Path, Command-line Arguments, And Working Directory. You Can Add Additional Executables To The Solution By Using File-> Add-> Existing Project And Selecting Another Already-built Executable. You Can Select Which One To Debug By Right-clicking On One Of Them In Solution Explorer And Selecting Set As Startup Project. When Your Solution File Is Customized To Your Taste You Can Save It To A Directory Such As Out\solutions. Saving It There Helps Ensure That Relative Paths To Source Files, Printed From Build Commands, Will Correctly Identify The Source Files. The Tools Menu Can Be Used To Add Commands To Do Things Like Invoke Autoninja To Build Chrome, Compile The Selected Source File, Or Other Things. Visual Studio 2017 Is Not Recommended For Debugging Of Chromium - Use A Newer Version For Best Performance And Stability. Symbol_level=2 Is The Default On Windows And Gives Full Debugging Information With Types, Locals, Globals, Function Names, And Source/line Information. Symbol_level=1 Creates Smaller PDBs With Just Function Names, And Source/line Information - Source-level Debugging Is Still Supported (new From June 2019), But Local Variables And Type Information Are Missing. Symbol_level=0 Gives Extremely Limited Debugging Abilities, Mostly Just Viewing Call Stacks When Chromium Crashes. Browsing Source Code If You Use A Solution File Generated By Gn (gn Gen --ide=vs) Then Intellisense May Help You Navigate The Code. If This Doesn't Work Or If You Use A Solution Created As Above Then You May Want To Install VsChromium To Help Navigate The Code, As Well As Using Https://source.chromium.org. Profiles It's A Good Idea To Use A Different Chrome Profile For Your Debugging. If You Are Debugging Google Chrome Branded Builds, Or Use A Chromium Build As Your Primary Browser, The Profiles Can Collide So You Can't Run Both At Once, And Your Stable Browser Might See Profile Versions From The Future (Google Chrome And Chromium Use Different Profile Directories By Default So Won't Collide). Use The Command-line Option: --user-data-dir=C:\tmp\my_debug_profile (replace The Path As Necessary) Using The IDE, Go To The Debugging Tab Of The Properties Of The Chrome Project, And Set The Command Arguments. Chrome Debug Log Enable Chrome Debug Logging To A File By Passing --enable-logging --v=1 Command-line Flags At Startup. Debug Builds Place The Chrome_debug.log File In The Out\Debug Directory. Release Builds Place The File In The Top Level Of The User Data Chromium App Directory, Which Is OS-version-dependent. For More Information, See Logging And User Data Directory Details. Symbol Server If You Are Debugging Official Google Chrome Release Builds, Use The Symbol Server: Https://chromium-browser-symsrv.commondatastorage.googleapis.com In Visual Studio, This Goes In Tools > Options Under Debugging > Symbols. You Should Set Up A Local Cache In A Empty Directory On Your Computer. In Windbg You Can Add This To Your Symbol Server Search Path With The Command Below, Where C:\symbols Is A Local Cache Directory: .sympath+ SRV\*C:\symbols\*https://chromium-browser-symsrv.commondatastorage.googleapis.com Alternately, You Can Set The _NT_SYMBOL_PATH Environment Variable To Include Both The Microsoft And Google Symbol Servers - VS, Windbg, And Other Tools Should Both Respect This Environment Variable: _NT_SYMBOL_PATH=SRV\*C:\symbols\*https://msdl.microsoft.com/download/symbols;SRV\*C:\symbols\*https://chromium-browser-symsrv.commondatastorage.googleapis.com Note That Symbol Servers Will Let The Debuggers Download Both The PE Files (DLLs And EXEs) And The PDB Files. Chrome Often Loads Third Party Libraries And Partial Symbols For Some Of These Are Also Public. For Example: AMD: Https://download.amd.com/dir/bin Nvidia: Https://driver-symbols.nvidia.com/ Intel: Https://software.intel.com/sites/downloads/symbols/ For Example, For Completeness, The Following Symbol Server Environment Variable Will Resolve All Of The Above Sources - But This Is More Than Is Normally Needed: _NT_SYMBOL_PATH=SRV\*C:\symbols\*https://msdl.microsoft.com/download/symbols;SRV\*C:\symbols\*https://chromium-browser-symsrv.commondatastorage.googleapis.com;SRV\*C:\symbols\*https://download.amd.com/dir/bin;SRV\*C:\symbols\*https://driver-symbols.nvidia.com/;SRV\*C:\symbols\*https://software.intel.com/sites/downloads/symbols/ Source Indexing You Should Set Up Source Indexing In Your Debugger (.srcfix In Windbg, Tools-> Options-> Debugging-> General-> Enable Source Server Support In Visual Studio) So That The Correct Source Files Will Automatically Be Downloaded Based On Information In The Downloaded Symbols. Additionally, You Must Have Python In Your Path In Order For The Command That Fetches Source Files To Succeed; Launching The Debugger From The Same Environment As Where You Build Chromium Is An Easy Way To Ensure It's Present. This Is Highly Recommended When Debugging Released Google Chrome Builds Or Looking At Crash Dumps. Having The Correct Version Of The Source Files Automatically Show Up Saves Significant Time So You Should Definitely Set This. Multi-process Issues Chromium Can Be Challenging To Debug Because Of Its Multi-process Architecture. When You Select Run In The Debugger, Only The Main Browser Process Will Be Debugged. The Code That Actually Renders Web Pages (the Renderer) And The Plugins Will Be In Separate Processes That's Not (yet!) Being Debugged. The ProcessExplorer Tool Has A Process Tree View Where You Can See How These Processes Are Related. You Can Also Get The Process IDs Associated With Each Tab From The Chrome Task Manager (right-click On An Empty Area Of The Window Title Bar To Open). Automatically Attach To Child Processes There Are Two Visual Studio Extensions That Enable The Debugger To Automatically Attach To All Chrome Processes, So You Can Debug All Of Chrome At Once. Microsoft's Child Process Debugging Power Tool Is A Standalone Extension For This, And VsChromium Is Another Option That Bundles Many Other Additional Features. In Addition To Installing One Of These Extensions, You Must Run Visual Studio As Administrator, Or It Will Silently Fail To Attach To Some Of Chrome's Child Processes. Single-process Mode One Way To Debug Issues Is To Run Chromium In Single-process Mode. This Will Allow You To See The Entire State Of The Program Without Extra Work (although It Will Still Have Many Threads). To Use Single-process Mode, Add The Command-line Flag --single-process This Approach Isn't Perfect Because Some Problems Won't Manifest Themselves In This Mode And Some Features Don't Work And Worker Threads Are Still Spawned Into New Processes. Manually Attaching To A Child Process You Can Attach To The Running Child Processes With The Debugger. Select Tools > Attach To Process And Click The Chrome.exe Process You Want To Attach To. Before Attaching, Make Sure You Have Selected Only Native Code When Attaching To The Process This Is Done By Clicking Select... In The Attach To Process Window And Only Checking Native. If You Forget This, It May Attempt To Attach In "WebKit" Mode To Debug JavaScript, And You'll Get An Error Message "An Operation Is Not Legal In The Current State." You Can Now Debug The Two Processes As If They Were One. When You Are Debugging Multiple Processes, Open The Debug > Windows > Processes Window To Switch Between Them. Sometimes You Are Debugging Something That Only Happens On Startup, And Want To See The Child Process As Soon As It Starts. Use: --renderer-startup-dialog --no-sandbox You Have To Disable The Sandbox Or The Dialog Box Will Be Prohibited From Showing. When The Dialog Appears, Visit Tools > Attach To Process And Attach To The Process Showing The Renderer Startup Dialog. Now You're Debugging In The Renderer And Can Continue Execution By Pressing OK In The Dialog. Startup Dialogs Also Exist For Other Child Process Types: --gpu-startup-dialog, --ppapi-startup-dialog, --utility-startup-dialog, --plugin-startup-dialog (for NPAPI). For Utilities, You Can Add A Service Type --utility-startup-dialog=data_decoder.mojom.DataDecoderService. You Can Also Try The Vs-chromium Plug-in To Attach To The Right Processes. Semi-automatically Attaching The Debugger To Child Processes The Following Flags Cause Child Processes To Wait For 60 Seconds In A Busy Loop For A Debugger To Attach To The Process. Once Either Condition Is True, It Continues On; No Exception Is Thrown. --wait-for-debugger-children[=filter] The Filter, If Provided, Will Fire Only If It Matches The --type Parameter To The Process. Values Include Renderer, Plugin (for NPAPI), Ppapi, Gpu-process, And Utility. When Using This Option, It May Be Helpful To Limit The Number Of Renderer Processes Spawned, Using: --renderer-process-limit=1 Image File Execution Options Using Image File Execution Options (IFEO) Will Not Work Because CreateProcess() Returns The Handle To The Debugger Process Instead Of The Intended Child Process. There Are Also Issues With The Sandbox. Time Travel Debugging You Can Do Time Travel Debugging Using WinDbg Preview (must Be Installed From The Microsoft Store). This Lets You Execute A Program Forward And Backwards. After Capturing A Trace, You Can Set Breakpoints And Step Through Code As Normal, But Also Provides 'backwards' Commands (g-, T-, P-) So That You Can Go Back And Forth Through The Execution. It Is Especially Useful To Set Data Breakpoints (ba Command) And Reverse Continuing, So You Can See When A Certain Variable Was Last Changed To Its Current Value. Chromium Specifics: The Type Of Injection The Time Travel Tracer Needs To Perform Is Incompatible With The Chromium Sandbox. In Order To Record A Trace, You'll Need To Run With --no-sandbox. Chromium Cannot Run Elevated With Administrator Privileges, So The "Launch Executable (advance)" Option Won't Work, You'll Need To Attach After The Process Has Already Launched Via The Checkbox In The Bottom Right. If You Need To Record Startup-like Things, You'll Have To Use --{browser,gpu,renderer,utility}-startup-dialog, Then Attach (and Hope The Relevant Code Hasn't Executed Before That Point). JsDbg -- Data Structure Visualization You Can Install JsDbg As A Plugin For WinDbg Or Visual Studio. It Interactively Lets You Look At Data Structures (such As The DOM Tree, Accessibility Tree, Layout Object Tree, And Others) In A Web Browser As You Debug. See The JsDbg Site For Some Screen Shots And Usage Examples. This Also Works When Examining Memory Dumps (though Not Minidumps), And Also Works Together With Time Travel Debugging. Visual Studio Hints Debug Visualizers Chrome's Custom Debug Visualizers Should Be Added To The Pdb Files And Automatically Picked Up By Visual Studio. The Definitions Are In //tools/win/DebugVisualizers If You Need To Modify Them (the BUILD.gn File There Has Additional Instructions). Don't Step Into Trivial Functions The Debugger Can Be Configured To Automatically Not Step Into Functions Based On Regular Expression. Edit Default.natstepfilter In The Following Directory: For Visual Studio 2015: C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\Packages\Debugger\Visualizers (for All Users) Or %USERPROFILE%\My Documents\Visual Studio 2015\Visualizers (for The Current User Only) For Visual Studio 2017 Pro: C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\Packages\Debugger\Visualizers (for All Users) Or %USERPROFILE%\My Documents\Visual Studio 2017\Visualizers (for The Current User Only) Add Regular Expressions Of Functions To Not Step Into. Remember To Regex-escape And XML-escape Them, E.g. < For < And \. For A Literal Dot. Example: Operator New NoStepInto Operator Delete NoStepInto Std::.* NoStepInto WTF::.*Ptr ::.* NoStepInto This File Is Read At Start Of A Debugging Session (F5), So You Don't Need To Restart Visual Studio After Changing It. More Info: Microsoft Email Thread V8 And Chromium V8 Supports Many Command-line Flags That Are Useful For Debugging. V8 Command-line Flags Can Be Set Via The Chromium Command-line Flag --js-flags; For Instance: Chrome.exe --js-flags="--trace_exception --heap_stats" Note That Some V8 Command-line Flags Exist Only In The Debug Build Of V8. For A List Of All V8 Flags Try: Chrome.exe --js-flags="--help" Graphics Debugging GPU Acceleration Of Rendering Can Be More Easily Debugged With Tools. See: Graphics Debugging In Visual Studio 2013 Graphical Debugging With NVIDIA NSight Debugging On Another Machine Sometimes It's Useful To Debug Installation And Execution On A Machine Other Than Your Primary Build Box. To Run The Installer On Said Other Machine, First Build The Mini_installer Target On Your Main Build Machine (e.g., Autoninja -C Out\Debug Mini_installer). Next, On The Debug Machine: Make The Build Machine's Build Volume Available On The Debug Machine Either By Mounting It Locally (e.g., Z:\) Or By Crafting A UNC Path To It (e.g., \\builder\src) Open Up A Command Prompt And Change To A Local Disk Run Src\tools\win\copy-installer.bat In The Remote Checkout By Way Of The Mount (e.g., Z:\PATHTOCHECKOUT\src\...) Or UNC Path (e.g., \\builder\src\...). This Will Copy The Installer, DLLs, And PDBs Into Your Debug Machine's C:\out Or C:\build (depending On If You're Rocking The Component=shared_library Build Or Not) Run C:\out\Debug\mini_installer.exe With The Flags Of Your Choice To Install Chrome. This Can Take Some Time, Especially On A Slow Machine. Watch The Task Manager And Wait Until Mini_installer.exe Exits Before Trying To Launch Chrome (by Way Of The Shortcut(s) Created By The Installer) For Extra Pleasure, Add C:\out\Debug To Your _NT_SYMBOL_PATH Environment Variable Consider Reading The Documentation At The Top Of Copy-installer.bat To See How You Can Run It. It Tries To Be Smart And Copy The Right Things, But You May Need To Be Explicit (e.g., "copy-installer.bat Out Debug"). It Is Safe To Re-run The Script To Copy Only Modified Files (after A Rebuild, For Example). You Can Also Use The Zip Action Of The Isolate Scripts (tools\mb\mb.py) To Package All The Files For A Target Into A Single Zip File, For Example: Python Tools\mb\mb.py Zip Out/Release Base_unittests Base_unittests.zip Finding All Memory Allocations It Is Possible To Use Heap Snapshots To Get Call Stacks On All Outstanding Allocations That Use The OS Heap. This Works Particularly Well If Heap Snapshots Are Started As Soon As The Chrome Browser Process Is Created, But Before It Starts Running. Details Can Be Found In This Batch File. However, With PartitionAlloc Everywhere Most Chromium Allocations No Longer Use The Windows Heap So This Will Only Find A Subset Of Allocations, Mostly From OS DLLs. Find Memory Leaks Note: As With Heap Snapshots The Utility Of UMDH Is Greatly Reduced Now Because PartitionAlloc Everywhere Has Mostly Replaced The Windows Heap. The Windows Heap Manager Has A Really Useful Debug Flag, Where It Can Be Asked To Capture And Store A Stack Trace With Every Allocation. The Tool To Scrape These Stack Traces Out Of Processes Is UMDH, Which Comes With WinDbg. UMDH Is Great. It Will Capture A Snapshot Of The Heap State As Many Times As You Like, And It'll Do It Fairly Quickly. You Then Run It Again Against Either A Single Snapshot, Or A Pair Of Snapshots, At Which Time It'll Symbolize The Stack Traces And Aggregate Usage Up To Unique Stack Traces. Turning On The User Stack Trace Database For Chrome.exe With Gflags.exe Makes It Run Unbearably Slowly; However, Turning On The User Stack Trace Database On For The Browser Alone Is Just Fine. While It's Possible To Turn On The User Stack Database With The "!gflag" Debugging Extension, It's Too Late To Do This By The Time The Initial Debugger Breakpoint Hits. The Only Reasonable Way To Do This Is To Launch GFlags.exe, Enable The User Stack Trace Database (per Image Below), Launch Chrome Under The Debugger. Set A Breakpont When Chrome.dll Loads With "sxe Ld Chrome.dll". Step Up, To Allow Chrome.dll To Initialize. Disable The Stack Trace Database In GFlags.exe. Continue Chrome, Optionally Detaching The Debugger. Image GFlags.exe Settings For User Mode Stack Trace Database. If You Then Ever Suffer A Browser Memory Leak, You Can Snarf A Dump Of The Process With Umdh -p: > Chrome-browser-leak-umdh-dump.txt Which Can Then Typically Be "trivially" Analyzed To Find The Culprit. Miscellaneous Note That By Default Application Verifier Only Works With Non-official Builds Of Chromium. To Use Application Verifier On Official Builds You Need To Add --disable-features=RendererCodeIntegrity To Avoid Sandbox Crashes In Renderer Processes. See Crbug.com/1004989 For Details. See Also This Page. Application Verifier Is A Free Tool From Microsoft (available As Part Of The Windows SDK) That Can Be Used To Flush Out Programming Errors. Starting With M68 Application Verifier Can Be Enabled For Chrome.exe Without Needing To Disable The Sandbox. After Adding Chrome.exe To The List Of Applications To Be Stressed You Need To Expand The List Of Basics Checks And Disable The Leak Checks. You May Also Need To Disable Handles And Locks Checks Depending On Your Graphics Driver And Specific Chrome Version, But The Eventual Goal Is To Have Chrome Run With Handles And Locks Checks Enabled. When Bugs Are Found Chrome Will Trigger A Breakpoint So Running All Chrome Processes Under A Debugger Is Recommended. Chrome Will Run Much More Slowly Because Application Verifier Puts Every Heap Allocation On A Separate Page. Note That With PartitionAlloc Everywhere Most Chromium Allocations Don't Actually Go Through The Windows Heap And Are Therefore Unaffected By Application Verifier. You Can Check The Undocumented 'Cuzz' Checkbox In Application Verifier To Get The Windows Thread Scheduler To Add Some Extra Randomness In Order To Help Expose Race Conditions In Your Code. To Put A Breakpoint On CreateFile(), Add This Break Point: {,,kernel32.dll}_CreateFileW@28 {,,kernel32.dll} Specifies The DLL (context Operator). _ Prefix Means Extern "C". @28 Postfix Means _stdcall With The Stack Pop At The End Of The Function. I.e. The Number Of Arguments In BYTES. You Can Use DebugView From SysInternals Or Sawbuck To View LOG() Messages That Normally Go To Stderr On POSIX.
The Chromium Projects Home Chromium ChromiumOS Quick links Report bugs Discuss Other sites Chromium Blog Google Chrome Extensions Except as otherwise noted , the content of this page is licensed under a Creative Commons Attribution 2.5 license , and examples are licensed under the BSD License . Privacy Edit this page For Developers > How-Tos > Debugging Chromium on Windows First see get the code for checkout and build instructions. Getting started You can use Visual Studio's built-in debugger or WinDBG to debug Chromium. You don't need to use the IDE to build in order to use the debugger: autoninja is used to build Chromium and most developers invoke it from a command prompt, and then open the IDE for debugging as necessary. To start debugging an already-built executable with Visual Studio just launch Visual Studio (2019 or higher) and select File-> Open-> Project/Solution (Ctrl+Shift+O) and select the executable of interest. This will create a solution with that executable as the 'project'. You can then launch the debugger with F5 or F11 or from the Debug menu. If you right-click on the executable in Solution Explorer and select properties then you can edit things such as the executable path, command-line arguments, and working directory. You can add additional executables to the solution by using File-> Add-> Existing Project and selecting another already-built executable. You can select which one to debug by right-clicking on one of them in Solution Explorer and selecting Set as Startup Project. When your solution file is customized to your taste you can save it to a directory such as out\solutions. Saving it there helps ensure that relative paths to source files, printed from build commands, will correctly identify the source files. The Tools menu can be used to add commands to do things like invoke autoninja to build Chrome, compile the selected source file, or other things. Visual Studio 2017 is not recommended for debugging of Chromium - use a newer version for best performance and stability. symbol_level=2 is the default on Windows and gives full debugging information with types, locals, globals, function names, and source/line information. symbol_level=1 creates smaller PDBs with just function names, and source/line information - source-level debugging is still supported (new from June 2019), but local variables and type information are missing. symbol_level=0 gives extremely limited debugging abilities, mostly just viewing call stacks when Chromium crashes. Browsing source code If you use a solution file generated by gn ( gn gen --ide=vs ) then Intellisense may help you navigate the code. If this doesn't work or if you use a solution created as above then you may want to install VsChromium to help navigate the code, as well as using https://source.chromium.org . Profiles It's a good idea to use a different Chrome profile for your debugging. If you are debugging Google Chrome branded builds, or use a Chromium build as your primary browser, the profiles can collide so you can't run both at once, and your stable browser might see profile versions from the future (Google Chrome and Chromium use different profile directories by default so won't collide). Use the command-line option: --user-data-dir =C:\tmp\my_debug_profile (replace the path as necessary) Using the IDE, go to the Debugging tab of the properties of the chrome project, and set the Command Arguments. Chrome debug log Enable Chrome debug logging to a file by passing --enable-logging --v=1 command-line flags at startup. Debug builds place the chrome_debug.log file in the out\Debug directory. Release builds place the file in the top level of the user data Chromium app directory, which is OS-version-dependent. For more information, see logging and user data directory details. Symbol server If you are debugging official Google Chrome release builds, use the symbol server: https://chromium-browser-symsrv.commondatastorage.googleapis.com In Visual Studio, this goes in Tools > Options under Debugging > Symbols . You should set up a local cache in a empty directory on your computer. In windbg you can add this to your symbol server search path with the command below, where C:\symbols is a local cache directory: .sympath+ SRV\*C:\symbols\*https://chromium-browser-symsrv.commondatastorage.googleapis.com Alternately, You can set the _NT_SYMBOL_PATH environment variable to include both the Microsoft and Google symbol servers - VS, windbg, and other tools should both respect this environment variable: _NT_SYMBOL_PATH =SRV\*C:\symbols\*https://msdl.microsoft.com/download/symbols ;SRV\*C:\symbols\*https://chromium-browser-symsrv.commondatastorage.googleapis.com Note that symbol servers will let the debuggers download both the PE files (DLLs and EXEs) and the PDB files. Chrome often loads third party libraries and partial symbols for some of these are also public. For example: AMD : https://download.amd.com/dir/bin Nvidia : https://driver-symbols.nvidia.com/ Intel : https://software.intel.com/sites/downloads/symbols/ For example, for completeness, the following symbol server environment variable will resolve all of the above sources - but this is more than is normally needed: _NT_SYMBOL_PATH=SRV\*C:\symbols\*https://msdl.microsoft.com/download/symbols;SRV\*C:\symbols\*https://chromium-browser-symsrv.commondatastorage.googleapis.com;SRV\*C:\symbols\*https://download.amd.com/dir/bin;SRV\*C:\symbols\*https://driver-symbols.nvidia.com/;SRV\*C:\symbols\*https://software.intel.com/sites/downloads/symbols/ Source indexing You should set up source indexing in your debugger ( .srcfix in windbg, Tools-> Options-> Debugging-> General-> Enable source server support in Visual Studio) so that the correct source files will automatically be downloaded based on information in the downloaded symbols. Additionally, you must have python in your path in order for the command that fetches source files to succeed; launching the debugger from the same environment as where you build Chromium is an easy way to ensure it's present. This is highly recommended when debugging released Google Chrome builds or looking at crash dumps. Having the correct version of the source files automatically show up saves significant time so you should definitely set this. Multi-process issues Chromium can be challenging to debug because of its multi-process architecture . When you select Run in the debugger, only the main browser process will be debugged. The code that actually renders web pages (the Renderer) and the plugins will be in separate processes that's not (yet!) being debugged. The ProcessExplorer tool has a process tree view where you can see how these processes are related. You can also get the process IDs associated with each tab from the Chrome Task Manager (right-click on an empty area of the window title bar to open). Automatically attach to child processes There are two Visual Studio extensions that enable the debugger to automatically attach to all Chrome processes, so you can debug all of Chrome at once. Microsoft's Child Process Debugging Power Tool is a standalone extension for this, and VsChromium is another option that bundles many other additional features. In addition to installing one of these extensions, you must run Visual Studio as Administrator, or it will silently fail to attach to some of Chrome's child processes. Single-process mode One way to debug issues is to run Chromium in single-process mode. This will allow you to see the entire state of the program without extra work (although it will still have many threads). To use single-process mode, add the command-line flag --single-process This approach isn't perfect because some problems won't manifest themselves in this mode and some features don't work and worker threads are still spawned into new processes. Manually attaching to a child process You can attach to the running child processes with the debugger. Select Tools > Attach to Process and click the chrome.exe process you want to attach to. Before attaching, make sure you have selected only Native code when attaching to the process This is done by clicking Select... in the Attach to Process window and only checking Native. If you forget this, it may attempt to attach in "WebKit" mode to debug JavaScript, and you'll get an error message "An operation is not legal in the current state." You can now debug the two processes as if they were one. When you are debugging multiple processes, open the Debug > Windows > Processes window to switch between them. Sometimes you are debugging something that only happens on startup, and want to see the child process as soon as it starts. Use: --renderer-startup-dialog --no-sandbox You have to disable the sandbox or the dialog box will be prohibited from showing. When the dialog appears, visit Tools > Attach to Process and attach to the process showing the Renderer startup dialog. Now you're debugging in the renderer and can continue execution by pressing OK in the dialog. Startup dialogs also exist for other child process types: --gpu-startup-dialog , --ppapi-startup-dialog , --utility-startup-dialog , --plugin-startup-dialog (for NPAPI). For utilities, you can add a service type --utility-startup-dialog=data_decoder.mojom.DataDecoderService . You can also try the vs-chromium plug-in to attach to the right processes. Semi-automatically attaching the debugger to child processes The following flags cause child processes to wait for 60 seconds in a busy loop for a debugger to attach to the process. Once either condition is true, it continues on; no exception is thrown. --wait-for-debugger-children [=filter] The filter, if provided, will fire only if it matches the --type parameter to the process. Values include renderer , plugin (for NPAPI), ppapi , gpu-process , and utility . When using this option, it may be helpful to limit the number of renderer processes spawned, using: --renderer-process-limit = 1 Image File Execution Options Using Image File Execution Options (IFEO) will not work because CreateProcess() returns the handle to the debugger process instead of the intended child process. There are also issues with the sandbox. Time travel debugging You can do time travel debugging using WinDbg Preview (must be installed from the Microsoft Store). This lets you execute a program forward and backwards. After capturing a trace, you can set breakpoints and step through code as normal, but also provides 'backwards' commands (g-, t-, p-) so that you can go back and forth through the execution. It is especially useful to set data breakpoints ( ba command ) and reverse continuing, so you can see when a certain variable was last changed to its current value. Chromium specifics: The type of injection the time travel tracer needs to perform is incompatible with the Chromium sandbox. In order to record a trace, you'll need to run with --no-sandbox . Chromium cannot run elevated with Administrator privileges, so the "Launch executable (advance)" option won't work, you'll need to attach after the process has already launched via the checkbox in the bottom right. If you need to record startup-like things, you'll have to use --{browser,gpu,renderer,utility}-startup-dialog, then attach (and hope the relevant code hasn't executed before that point). JsDbg -- data structure visualization You can install JsDbg as a plugin for WinDbg or Visual Studio . It interactively lets you look at data structures (such as the DOM tree, Accessibility tree, layout object tree, and others) in a web browser as you debug. See the JsDbg site for some screen shots and usage examples. This also works when examining memory dumps (though not minidumps), and also works together with time travel debugging. Visual Studio hints Debug visualizers Chrome's custom debug visualizers should be added to the pdb files and automatically picked up by Visual Studio. The definitions are in //tools/win/DebugVisualizers if you need to modify them (the BUILD.gn file there has additional instructions). Don't step into trivial functions The debugger can be configured to automatically not step into functions based on regular expression. Edit default.natstepfilter in the following directory: For Visual Studio 2015: C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\Packages\Debugger\Visualizers (for all users) or %USERPROFILE%\My Documents\Visual Studio 2015\Visualizers (for the current user only) For Visual Studio 2017 Pro: C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\Packages\Debugger\Visualizers (for all users) or %USERPROFILE%\My Documents\Visual Studio 2017\Visualizers (for the current user only) Add regular expressions of functions to not step into. Remember to regex-escape and XML-escape them, e.g. < for < and \. for a literal dot. Example: < Function > < Name > operator new </ Name > < Action > NoStepInto </ Action > </ Function > < Function > < Name > operator delete </ Name > < Action > NoStepInto </ Action > </ Function > <!-- Skip everything in std --> < Function > < Name > std::.* </ Name > < Action > NoStepInto </ Action > </ Function > <!-- all methods on WebKit OwnPtr and variants, ... WTF::*Ptr<*>::* --> < Function > < Name > WTF::.*Ptr<.*>::.* </ Name > < Action > NoStepInto </ Action > </ Function > This file is read at start of a debugging session (F5), so you don't need to restart Visual Studio after changing it. More info: Microsoft email thread V8 and Chromium V8 supports many command-line flags that are useful for debugging. V8 command-line flags can be set via the Chromium command-line flag --js-flags; for instance: chrome.exe --js-flags= "--trace_exception --heap_stats" Note that some V8 command-line flags exist only in the debug build of V8. For a list of all V8 flags try: chrome.exe --js-flags= "--help" Graphics debugging GPU Acceleration of rendering can be more easily debugged with tools. See: Graphics Debugging in Visual Studio 2013 Graphical debugging with NVIDIA NSight Debugging on another machine Sometimes it's useful to debug installation and execution on a machine other than your primary build box. To run the installer on said other machine, first build the mini_installer target on your main build machine (e.g., autoninja -C out\Debug mini_installer). Next, on the debug machine: Make the build machine's build volume available on the debug machine either by mounting it locally (e.g., Z:\) or by crafting a UNC path to it (e.g., \\builder\src) Open up a command prompt and change to a local disk Run src\tools\win\ copy-installer.bat in the remote checkout by way of the mount (e.g., Z:\PATHTOCHECKOUT\src\...) or UNC path (e.g., \\builder\src\...). This will copy the installer, DLLs, and PDBs into your debug machine's C:\out or C:\build (depending on if you're rocking the component=shared_library build or not) Run C:\out\Debug\mini_installer.exe with the flags of your choice to install Chrome. This can take some time, especially on a slow machine. Watch the Task Manager and wait until mini_installer.exe exits before trying to launch Chrome (by way of the shortcut(s) created by the installer) For extra pleasure, add C:\out\Debug to your _NT_SYMBOL_PATH environment variable Consider reading the documentation at the top of copy-installer.bat to see how you can run it. It tries to be smart and copy the right things, but you may need to be explicit (e.g., "copy-installer.bat out Debug"). It is safe to re-run the script to copy only modified files (after a rebuild, for example). You can also use the zip action of the isolate scripts (tools\mb\mb.py) to package all the files for a target into a single zip file, for example: python tools\mb\mb.py zip out/Release base_unittests base_unittests. zip Finding all memory allocations It is possible to use Heap Snapshots to get call stacks on all outstanding allocations that use the OS heap. This works particularly well if heap snapshots are started as soon as the Chrome browser process is created, but before it starts running. Details can be found in this batch file . However, with PartitionAlloc Everywhere most Chromium allocations no longer use the Windows heap so this will only find a subset of allocations, mostly from OS DLLs. Find memory leaks Note: as with Heap Snapshots the utility of UMDH is greatly reduced now because PartitionAlloc Everywhere has mostly replaced the Windows heap. The Windows heap manager has a really useful debug flag, where it can be asked to capture and store a stack trace with every allocation. The tool to scrape these stack traces out of processes is UMDH, which comes with WinDbg . UMDH is great. It will capture a snapshot of the heap state as many times as you like, and it'll do it fairly quickly. You then run it again against either a single snapshot, or a pair of snapshots, at which time it'll symbolize the stack traces and aggregate usage up to unique stack traces. Turning on the user stack trace database for chrome.exe with gflags.exe makes it run unbearably slowly; however, turning on the user stack trace database on for the browser alone is just fine. While it's possible to turn on the user stack database with the "!gflag" debugging extension, it's too late to do this by the time the initial debugger breakpoint hits. The only reasonable way to do this is to Launch GFlags.exe, Enable the user stack trace database (per image below), Launch Chrome under the debugger. Set a breakpont when chrome.dll loads with "sxe ld chrome.dll". Step up, to allow Chrome.dll to initialize. Disable the stack trace database in GFlags.exe. Continue chrome, optionally detaching the debugger. GFlags.exe settings for user mode stack trace database. If you then ever suffer a browser memory leak, you can snarf a dump of the process with umdh - p :<my browser pid> > chrome-browser-leak-umdh-dump.txt which can then typically be "trivially" analyzed to find the culprit. Miscellaneous Note that by default Application Verifier only works with non-official builds of Chromium. To use Application Verifier on official builds you need to add --disable-features=RendererCodeIntegrity to avoid sandbox crashes in renderer processes. See crbug.com/1004989 for details. See also this page . Application Verifier is a free tool from Microsoft (available as part of the Windows SDK) that can be used to flush out programming errors. Starting with M68 Application Verifier can be enabled for chrome.exe without needing to disable the sandbox. After adding chrome.exe to the list of applications to be stressed you need to expand the list of Basics checks and disable the Leak checks. You may also need to disable Handles and Locks checks depending on your graphics driver and specific Chrome version, but the eventual goal is to have Chrome run with Handles and Locks checks enabled. When bugs are found Chrome will trigger a breakpoint so running all Chrome processes under a debugger is recommended. Chrome will run much more slowly because Application Verifier puts every heap allocation on a separate page. Note that with PartitionAlloc Everywhere most Chromium allocations don't actually go through the Windows heap and are therefore unaffected by Application Verifier. You can check the undocumented 'Cuzz' checkbox in Application Verifier to get the Windows thread scheduler to add some extra randomness in order to help expose race conditions in your code. To put a breakpoint on CreateFile(), add this break point: {,,kernel32.dll}_CreateFileW@28 {,,kernel32.dll} specifies the DLL (context operator). _ prefix means extern "C". @28 postfix means _stdcall with the stack pop at the end of the function. i.e. the number of arguments in BYTES. You can use DebugView from SysInternals or sawbuck to view LOG() messages that normally go to stderr on POSIX.
“The Chromium Logo The Chromium Projects Home Chromium ChromiumOS Quick Links Report Bugs Discuss Other Sites Chromium Blog Google Chrome Extensions Except As Otherwise Noted, The Content Of This Page Is Licensed Under A Creative Commons Attribution 2.5 License, And Examples Are Licensed Under The BSD License. Privacy Edit This Page For Developers > How-Tos > Debugging Chromium On Windows First See Get The Code For Checkout And Build Instructions. Getting Started You Can Use Visual Studio's Built-in Debugger Or WinDBG To Debug Chromium. You Don't Need To Use The IDE To Build In Order To Use The Debugger: Autoninja Is Used To Build Chromium And Most Developers Invoke It From A Command Prompt, And Then Open The IDE For Debugging As Necessary. To Start Debugging An Already-built Executable With Visual Studio Just Launch Visual Studio (2019 Or Higher) And Select File-> Open-> Project/Solution (Ctrl+Shift+O) And Select The Executable Of Interest. This Will Create A Solution With That Executable As The 'project'. You Can Then Launch The Debugger With F5 Or F11 Or From The Debug Menu. If You Right-click On The Executable In Solution Explorer And Select Properties Then You Can Edit Things Such As The Executable Path, Command-line Arguments, And Working Directory. You Can Add Additional Executables To The Solution By Using File-> Add-> Existing Project And Selecting Another Already-built Executable. You Can Select Which One To Debug By Right-clicking On One Of Them In Solution Explorer And Selecting Set As Startup Project. When Your Solution File Is Customized To Your Taste You Can Save It To A Directory Such As Out\solutions. Saving It There Helps Ensure That Relative Paths To Source Files, Printed From Build Commands, Will Correctly Identify The Source Files. The Tools Menu Can Be Used To Add Commands To Do Things Like Invoke Autoninja To Build Chrome, Compile The Selected Source File, Or Other Things. Visual Studio 2017 Is Not Recommended For Debugging Of Chromium - Use A Newer Version For Best Performance And Stability. Symbol_level=2 Is The Default On Windows And Gives Full Debugging Information With Types, Locals, Globals, Function Names, And Source/line Information. Symbol_level=1 Creates Smaller PDBs With Just Function Names, And Source/line Information - Source-level Debugging Is Still Supported (new From June 2019), But Local Variables And Type Information Are Missing. Symbol_level=0 Gives Extremely Limited Debugging Abilities, Mostly Just Viewing Call Stacks When Chromium Crashes. Browsing Source Code If You Use A Solution File Generated By Gn (gn Gen --ide=vs) Then Intellisense May Help You Navigate The Code. If This Doesn't Work Or If You Use A Solution Created As Above Then You May Want To Install VsChromium To Help Navigate The Code, As Well As Using Https://source.chromium.org. Profiles It's A Good Idea To Use A Different Chrome Profile For Your Debugging. If You Are Debugging Google Chrome Branded Builds, Or Use A Chromium Build As Your Primary Browser, The Profiles Can Collide So You Can't Run Both At Once, And Your Stable Browser Might See Profile Versions From The Future (Google Chrome And Chromium Use Different Profile Directories By Default So Won't Collide). Use The Command-line Option: --user-data-dir=C:\tmp\my_debug_profile (replace The Path As Necessary) Using The IDE, Go To The Debugging Tab Of The Properties Of The Chrome Project, And Set The Command Arguments. Chrome Debug Log Enable Chrome Debug Logging To A File By Passing --enable-logging --v=1 Command-line Flags At Startup. Debug Builds Place The Chrome_debug.log File In The Out\Debug Directory. Release Builds Place The File In The Top Level Of The User Data Chromium App Directory, Which Is OS-version-dependent. For More Information, See Logging And User Data Directory Details. Symbol Server If You Are Debugging Official Google Chrome Release Builds, Use The Symbol Server: Https://chromium-browser-symsrv.commondatastorage.googleapis.com In Visual Studio, This Goes In Tools > Options Under Debugging > Symbols. You Should Set Up A Local Cache In A Empty Directory On Your Computer. In Windbg You Can Add This To Your Symbol Server Search Path With The Command Below, Where C:\symbols Is A Local Cache Directory: .sympath+ SRV\*C:\symbols\*https://chromium-browser-symsrv.commondatastorage.googleapis.com Alternately, You Can Set The _NT_SYMBOL_PATH Environment Variable To Include Both The Microsoft And Google Symbol Servers - VS, Windbg, And Other Tools Should Both Respect This Environment Variable: _NT_SYMBOL_PATH=SRV\*C:\symbols\*https://msdl.microsoft.com/download/symbols;SRV\*C:\symbols\*https://chromium-browser-symsrv.commondatastorage.googleapis.com Note That Symbol Servers Will Let The Debuggers Download Both The PE Files (DLLs And EXEs) And The PDB Files. Chrome Often Loads Third Party Libraries And Partial Symbols For Some Of These Are Also Public. For Example: AMD: Https://download.amd.com/dir/bin Nvidia: Https://driver-symbols.nvidia.com/ Intel: Https://software.intel.com/sites/downloads/symbols/ For Example, For Completeness, The Following Symbol Server Environment Variable Will Resolve All Of The Above Sources - But This Is More Than Is Normally Needed: _NT_SYMBOL_PATH=SRV\*C:\symbols\*https://msdl.microsoft.com/download/symbols;SRV\*C:\symbols\*https://chromium-browser-symsrv.commondatastorage.googleapis.com;SRV\*C:\symbols\*https://download.amd.com/dir/bin;SRV\*C:\symbols\*https://driver-symbols.nvidia.com/;SRV\*C:\symbols\*https://software.intel.com/sites/downloads/symbols/ Source Indexing You Should Set Up Source Indexing In Your Debugger (.srcfix In Windbg, Tools-> Options-> Debugging-> General-> Enable Source Server Support In Visual Studio) So That The Correct Source Files Will Automatically Be Downloaded Based On Information In The Downloaded Symbols. Additionally, You Must Have Python In Your Path In Order For The Command That Fetches Source Files To Succeed; Launching The Debugger From The Same Environment As Where You Build Chromium Is An Easy Way To Ensure It's Present. This Is Highly Recommended When Debugging Released Google Chrome Builds Or Looking At Crash Dumps. Having The Correct Version Of The Source Files Automatically Show Up Saves Significant Time So You Should Definitely Set This. Multi-process Issues Chromium Can Be Challenging To Debug Because Of Its Multi-process Architecture. When You Select Run In The Debugger, Only The Main Browser Process Will Be Debugged. The Code That Actually Renders Web Pages (the Renderer) And The Plugins Will Be In Separate Processes That's Not (yet!) Being Debugged. The ProcessExplorer Tool Has A Process Tree View Where You Can See How These Processes Are Related. You Can Also Get The Process IDs Associated With Each Tab From The Chrome Task Manager (right-click On An Empty Area Of The Window Title Bar To Open). Automatically Attach To Child Processes There Are Two Visual Studio Extensions That Enable The Debugger To Automatically Attach To All Chrome Processes, So You Can Debug All Of Chrome At Once. Microsoft's Child Process Debugging Power Tool Is A Standalone Extension For This, And VsChromium Is Another Option That Bundles Many Other Additional Features. In Addition To Installing One Of These Extensions, You Must Run Visual Studio As Administrator, Or It Will Silently Fail To Attach To Some Of Chrome's Child Processes. Single-process Mode One Way To Debug Issues Is To Run Chromium In Single-process Mode. This Will Allow You To See The Entire State Of The Program Without Extra Work (although It Will Still Have Many Threads). To Use Single-process Mode, Add The Command-line Flag --single-process This Approach Isn't Perfect Because Some Problems Won't Manifest Themselves In This Mode And Some Features Don't Work And Worker Threads Are Still Spawned Into New Processes. Manually Attaching To A Child Process You Can Attach To The Running Child Processes With The Debugger. Select Tools > Attach To Process And Click The Chrome.exe Process You Want To Attach To. Before Attaching, Make Sure You Have Selected Only Native Code When Attaching To The Process This Is Done By Clicking Select... In The Attach To Process Window And Only Checking Native. If You Forget This, It May Attempt To Attach In "WebKit" Mode To Debug JavaScript, And You'll Get An Error Message "An Operation Is Not Legal In The Current State." You Can Now Debug The Two Processes As If They Were One. When You Are Debugging Multiple Processes, Open The Debug > Windows > Processes Window To Switch Between Them. Sometimes You Are Debugging Something That Only Happens On Startup, And Want To See The Child Process As Soon As It Starts. Use: --renderer-startup-dialog --no-sandbox You Have To Disable The Sandbox Or The Dialog Box Will Be Prohibited From Showing. When The Dialog Appears, Visit Tools > Attach To Process And Attach To The Process Showing The Renderer Startup Dialog. Now You're Debugging In The Renderer And Can Continue Execution By Pressing OK In The Dialog. Startup Dialogs Also Exist For Other Child Process Types: --gpu-startup-dialog, --ppapi-startup-dialog, --utility-startup-dialog, --plugin-startup-dialog (for NPAPI). For Utilities, You Can Add A Service Type --utility-startup-dialog=data_decoder.mojom.DataDecoderService. You Can Also Try The Vs-chromium Plug-in To Attach To The Right Processes. Semi-automatically Attaching The Debugger To Child Processes The Following Flags Cause Child Processes To Wait For 60 Seconds In A Busy Loop For A Debugger To Attach To The Process. Once Either Condition Is True, It Continues On; No Exception Is Thrown. --wait-for-debugger-children[=filter] The Filter, If Provided, Will Fire Only If It Matches The --type Parameter To The Process. Values Include Renderer, Plugin (for NPAPI), Ppapi, Gpu-process, And Utility. When Using This Option, It May Be Helpful To Limit The Number Of Renderer Processes Spawned, Using: --renderer-process-limit=1 Image File Execution Options Using Image File Execution Options (IFEO) Will Not Work Because CreateProcess() Returns The Handle To The Debugger Process Instead Of The Intended Child Process. There Are Also Issues With The Sandbox. Time Travel Debugging You Can Do Time Travel Debugging Using WinDbg Preview (must Be Installed From The Microsoft Store). This Lets You Execute A Program Forward And Backwards. After Capturing A Trace, You Can Set Breakpoints And Step Through Code As Normal, But Also Provides 'backwards' Commands (g-, T-, P-) So That You Can Go Back And Forth Through The Execution. It Is Especially Useful To Set Data Breakpoints (ba Command) And Reverse Continuing, So You Can See When A Certain Variable Was Last Changed To Its Current Value. Chromium Specifics: The Type Of Injection The Time Travel Tracer Needs To Perform Is Incompatible With The Chromium Sandbox. In Order To Record A Trace, You'll Need To Run With --no-sandbox. Chromium Cannot Run Elevated With Administrator Privileges, So The "Launch Executable (advance)" Option Won't Work, You'll Need To Attach After The Process Has Already Launched Via The Checkbox In The Bottom Right. If You Need To Record Startup-like Things, You'll Have To Use --{browser,gpu,renderer,utility}-startup-dialog, Then Attach (and Hope The Relevant Code Hasn't Executed Before That Point). JsDbg -- Data Structure Visualization You Can Install JsDbg As A Plugin For WinDbg Or Visual Studio. It Interactively Lets You Look At Data Structures (such As The DOM Tree, Accessibility Tree, Layout Object Tree, And Others) In A Web Browser As You Debug. See The JsDbg Site For Some Screen Shots And Usage Examples. This Also Works When Examining Memory Dumps (though Not Minidumps), And Also Works Together With Time Travel Debugging. Visual Studio Hints Debug Visualizers Chrome's Custom Debug Visualizers Should Be Added To The Pdb Files And Automatically Picked Up By Visual Studio. The Definitions Are In //tools/win/DebugVisualizers If You Need To Modify Them (the BUILD.gn File There Has Additional Instructions). Don't Step Into Trivial Functions The Debugger Can Be Configured To Automatically Not Step Into Functions Based On Regular Expression. Edit Default.natstepfilter In The Following Directory: For Visual Studio 2015: C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\Packages\Debugger\Visualizers (for All Users) Or %USERPROFILE%\My Documents\Visual Studio 2015\Visualizers (for The Current User Only) For Visual Studio 2017 Pro: C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\Packages\Debugger\Visualizers (for All Users) Or %USERPROFILE%\My Documents\Visual Studio 2017\Visualizers (for The Current User Only) Add Regular Expressions Of Functions To Not Step Into. Remember To Regex-escape And XML-escape Them, E.g. < For < And \. For A Literal Dot. Example: Operator New NoStepInto Operator Delete NoStepInto Std::.* NoStepInto WTF::.*Ptr ::.* NoStepInto This File Is Read At Start Of A Debugging Session (F5), So You Don't Need To Restart Visual Studio After Changing It. More Info: Microsoft Email Thread V8 And Chromium V8 Supports Many Command-line Flags That Are Useful For Debugging. V8 Command-line Flags Can Be Set Via The Chromium Command-line Flag --js-flags; For Instance: Chrome.exe --js-flags="--trace_exception --heap_stats" Note That Some V8 Command-line Flags Exist Only In The Debug Build Of V8. For A List Of All V8 Flags Try: Chrome.exe --js-flags="--help" Graphics Debugging GPU Acceleration Of Rendering Can Be More Easily Debugged With Tools. See: Graphics Debugging In Visual Studio 2013 Graphical Debugging With NVIDIA NSight Debugging On Another Machine Sometimes It's Useful To Debug Installation And Execution On A Machine Other Than Your Primary Build Box. To Run The Installer On Said Other Machine, First Build The Mini_installer Target On Your Main Build Machine (e.g., Autoninja -C Out\Debug Mini_installer). Next, On The Debug Machine: Make The Build Machine's Build Volume Available On The Debug Machine Either By Mounting It Locally (e.g., Z:\) Or By Crafting A UNC Path To It (e.g., \\builder\src) Open Up A Command Prompt And Change To A Local Disk Run Src\tools\win\copy-installer.bat In The Remote Checkout By Way Of The Mount (e.g., Z:\PATHTOCHECKOUT\src\...) Or UNC Path (e.g., \\builder\src\...). This Will Copy The Installer, DLLs, And PDBs Into Your Debug Machine's C:\out Or C:\build (depending On If You're Rocking The Component=shared_library Build Or Not) Run C:\out\Debug\mini_installer.exe With The Flags Of Your Choice To Install Chrome. This Can Take Some Time, Especially On A Slow Machine. Watch The Task Manager And Wait Until Mini_installer.exe Exits Before Trying To Launch Chrome (by Way Of The Shortcut(s) Created By The Installer) For Extra Pleasure, Add C:\out\Debug To Your _NT_SYMBOL_PATH Environment Variable Consider Reading The Documentation At The Top Of Copy-installer.bat To See How You Can Run It. It Tries To Be Smart And Copy The Right Things, But You May Need To Be Explicit (e.g., "copy-installer.bat Out Debug"). It Is Safe To Re-run The Script To Copy Only Modified Files (after A Rebuild, For Example). You Can Also Use The Zip Action Of The Isolate Scripts (tools\mb\mb.py) To Package All The Files For A Target Into A Single Zip File, For Example: Python Tools\mb\mb.py Zip Out/Release Base_unittests Base_unittests.zip Finding All Memory Allocations It Is Possible To Use Heap Snapshots To Get Call Stacks On All Outstanding Allocations That Use The OS Heap. This Works Particularly Well If Heap Snapshots Are Started As Soon As The Chrome Browser Process Is Created, But Before It Starts Running. Details Can Be Found In This Batch File. However, With PartitionAlloc Everywhere Most Chromium Allocations No Longer Use The Windows Heap So This Will Only Find A Subset Of Allocations, Mostly From OS DLLs. Find Memory Leaks Note: As With Heap Snapshots The Utility Of UMDH Is Greatly Reduced Now Because PartitionAlloc Everywhere Has Mostly Replaced The Windows Heap. The Windows Heap Manager Has A Really Useful Debug Flag, Where It Can Be Asked To Capture And Store A Stack Trace With Every Allocation. The Tool To Scrape These Stack Traces Out Of Processes Is UMDH, Which Comes With WinDbg. UMDH Is Great. It Will Capture A Snapshot Of The Heap State As Many Times As You Like, And It'll Do It Fairly Quickly. You Then Run It Again Against Either A Single Snapshot, Or A Pair Of Snapshots, At Which Time It'll Symbolize The Stack Traces And Aggregate Usage Up To Unique Stack Traces. Turning On The User Stack Trace Database For Chrome.exe With Gflags.exe Makes It Run Unbearably Slowly; However, Turning On The User Stack Trace Database On For The Browser Alone Is Just Fine. While It's Possible To Turn On The User Stack Database With The "!gflag" Debugging Extension, It's Too Late To Do This By The Time The Initial Debugger Breakpoint Hits. The Only Reasonable Way To Do This Is To Launch GFlags.exe, Enable The User Stack Trace Database (per Image Below), Launch Chrome Under The Debugger. Set A Breakpont When Chrome.dll Loads With "sxe Ld Chrome.dll". Step Up, To Allow Chrome.dll To Initialize. Disable The Stack Trace Database In GFlags.exe. Continue Chrome, Optionally Detaching The Debugger. Image GFlags.exe Settings For User Mode Stack Trace Database. If You Then Ever Suffer A Browser Memory Leak, You Can Snarf A Dump Of The Process With Umdh -p: > Chrome-browser-leak-umdh-dump.txt Which Can Then Typically Be "trivially" Analyzed To Find The Culprit. Miscellaneous Note That By Default Application Verifier Only Works With Non-official Builds Of Chromium. To Use Application Verifier On Official Builds You Need To Add --disable-features=RendererCodeIntegrity To Avoid Sandbox Crashes In Renderer Processes. See Crbug.com/1004989 For Details. See Also This Page. Application Verifier Is A Free Tool From Microsoft (available As Part Of The Windows SDK) That Can Be Used To Flush Out Programming Errors. Starting With M68 Application Verifier Can Be Enabled For Chrome.exe Without Needing To Disable The Sandbox. After Adding Chrome.exe To The List Of Applications To Be Stressed You Need To Expand The List Of Basics Checks And Disable The Leak Checks. You May Also Need To Disable Handles And Locks Checks Depending On Your Graphics Driver And Specific Chrome Version, But The Eventual Goal Is To Have Chrome Run With Handles And Locks Checks Enabled. When Bugs Are Found Chrome Will Trigger A Breakpoint So Running All Chrome Processes Under A Debugger Is Recommended. Chrome Will Run Much More Slowly Because Application Verifier Puts Every Heap Allocation On A Separate Page. Note That With PartitionAlloc Everywhere Most Chromium Allocations Don't Actually Go Through The Windows Heap And Are Therefore Unaffected By Application Verifier. You Can Check The Undocumented 'Cuzz' Checkbox In Application Verifier To Get The Windows Thread Scheduler To Add Some Extra Randomness In Order To Help Expose Race Conditions In Your Code. To Put A Breakpoint On CreateFile(), Add This Break Point: {,,kernel32.dll}_CreateFileW@28 {,,kernel32.dll} Specifies The DLL (context Operator). _ Prefix Means Extern "C". @28 Postfix Means _stdcall With The Stack Pop At The End Of The Function. I.e. The Number Of Arguments In BYTES. You Can Use DebugView From SysInternals Or Sawbuck To View LOG() Messages That Normally Go To Stderr On POSIX.” Metadata:
- Title: ➤ The Chromium Logo The Chromium Projects Home Chromium ChromiumOS Quick Links Report Bugs Discuss Other Sites Chromium Blog Google Chrome Extensions Except As Otherwise Noted, The Content Of This Page Is Licensed Under A Creative Commons Attribution 2.5 License, And Examples Are Licensed Under The BSD License. Privacy Edit This Page For Developers > How-Tos > Debugging Chromium On Windows First See Get The Code For Checkout And Build Instructions. Getting Started You Can Use Visual Studio's Built-in Debugger Or WinDBG To Debug Chromium. You Don't Need To Use The IDE To Build In Order To Use The Debugger: Autoninja Is Used To Build Chromium And Most Developers Invoke It From A Command Prompt, And Then Open The IDE For Debugging As Necessary. To Start Debugging An Already-built Executable With Visual Studio Just Launch Visual Studio (2019 Or Higher) And Select File-> Open-> Project/Solution (Ctrl+Shift+O) And Select The Executable Of Interest. This Will Create A Solution With That Executable As The 'project'. You Can Then Launch The Debugger With F5 Or F11 Or From The Debug Menu. If You Right-click On The Executable In Solution Explorer And Select Properties Then You Can Edit Things Such As The Executable Path, Command-line Arguments, And Working Directory. You Can Add Additional Executables To The Solution By Using File-> Add-> Existing Project And Selecting Another Already-built Executable. You Can Select Which One To Debug By Right-clicking On One Of Them In Solution Explorer And Selecting Set As Startup Project. When Your Solution File Is Customized To Your Taste You Can Save It To A Directory Such As Out\solutions. Saving It There Helps Ensure That Relative Paths To Source Files, Printed From Build Commands, Will Correctly Identify The Source Files. The Tools Menu Can Be Used To Add Commands To Do Things Like Invoke Autoninja To Build Chrome, Compile The Selected Source File, Or Other Things. Visual Studio 2017 Is Not Recommended For Debugging Of Chromium - Use A Newer Version For Best Performance And Stability. Symbol_level=2 Is The Default On Windows And Gives Full Debugging Information With Types, Locals, Globals, Function Names, And Source/line Information. Symbol_level=1 Creates Smaller PDBs With Just Function Names, And Source/line Information - Source-level Debugging Is Still Supported (new From June 2019), But Local Variables And Type Information Are Missing. Symbol_level=0 Gives Extremely Limited Debugging Abilities, Mostly Just Viewing Call Stacks When Chromium Crashes. Browsing Source Code If You Use A Solution File Generated By Gn (gn Gen --ide=vs) Then Intellisense May Help You Navigate The Code. If This Doesn't Work Or If You Use A Solution Created As Above Then You May Want To Install VsChromium To Help Navigate The Code, As Well As Using Https://source.chromium.org. Profiles It's A Good Idea To Use A Different Chrome Profile For Your Debugging. If You Are Debugging Google Chrome Branded Builds, Or Use A Chromium Build As Your Primary Browser, The Profiles Can Collide So You Can't Run Both At Once, And Your Stable Browser Might See Profile Versions From The Future (Google Chrome And Chromium Use Different Profile Directories By Default So Won't Collide). Use The Command-line Option: --user-data-dir=C:\tmp\my_debug_profile (replace The Path As Necessary) Using The IDE, Go To The Debugging Tab Of The Properties Of The Chrome Project, And Set The Command Arguments. Chrome Debug Log Enable Chrome Debug Logging To A File By Passing --enable-logging --v=1 Command-line Flags At Startup. Debug Builds Place The Chrome_debug.log File In The Out\Debug Directory. Release Builds Place The File In The Top Level Of The User Data Chromium App Directory, Which Is OS-version-dependent. For More Information, See Logging And User Data Directory Details. Symbol Server If You Are Debugging Official Google Chrome Release Builds, Use The Symbol Server: Https://chromium-browser-symsrv.commondatastorage.googleapis.com In Visual Studio, This Goes In Tools > Options Under Debugging > Symbols. You Should Set Up A Local Cache In A Empty Directory On Your Computer. In Windbg You Can Add This To Your Symbol Server Search Path With The Command Below, Where C:\symbols Is A Local Cache Directory: .sympath+ SRV\*C:\symbols\*https://chromium-browser-symsrv.commondatastorage.googleapis.com Alternately, You Can Set The _NT_SYMBOL_PATH Environment Variable To Include Both The Microsoft And Google Symbol Servers - VS, Windbg, And Other Tools Should Both Respect This Environment Variable: _NT_SYMBOL_PATH=SRV\*C:\symbols\*https://msdl.microsoft.com/download/symbols;SRV\*C:\symbols\*https://chromium-browser-symsrv.commondatastorage.googleapis.com Note That Symbol Servers Will Let The Debuggers Download Both The PE Files (DLLs And EXEs) And The PDB Files. Chrome Often Loads Third Party Libraries And Partial Symbols For Some Of These Are Also Public. For Example: AMD: Https://download.amd.com/dir/bin Nvidia: Https://driver-symbols.nvidia.com/ Intel: Https://software.intel.com/sites/downloads/symbols/ For Example, For Completeness, The Following Symbol Server Environment Variable Will Resolve All Of The Above Sources - But This Is More Than Is Normally Needed: _NT_SYMBOL_PATH=SRV\*C:\symbols\*https://msdl.microsoft.com/download/symbols;SRV\*C:\symbols\*https://chromium-browser-symsrv.commondatastorage.googleapis.com;SRV\*C:\symbols\*https://download.amd.com/dir/bin;SRV\*C:\symbols\*https://driver-symbols.nvidia.com/;SRV\*C:\symbols\*https://software.intel.com/sites/downloads/symbols/ Source Indexing You Should Set Up Source Indexing In Your Debugger (.srcfix In Windbg, Tools-> Options-> Debugging-> General-> Enable Source Server Support In Visual Studio) So That The Correct Source Files Will Automatically Be Downloaded Based On Information In The Downloaded Symbols. Additionally, You Must Have Python In Your Path In Order For The Command That Fetches Source Files To Succeed; Launching The Debugger From The Same Environment As Where You Build Chromium Is An Easy Way To Ensure It's Present. This Is Highly Recommended When Debugging Released Google Chrome Builds Or Looking At Crash Dumps. Having The Correct Version Of The Source Files Automatically Show Up Saves Significant Time So You Should Definitely Set This. Multi-process Issues Chromium Can Be Challenging To Debug Because Of Its Multi-process Architecture. When You Select Run In The Debugger, Only The Main Browser Process Will Be Debugged. The Code That Actually Renders Web Pages (the Renderer) And The Plugins Will Be In Separate Processes That's Not (yet!) Being Debugged. The ProcessExplorer Tool Has A Process Tree View Where You Can See How These Processes Are Related. You Can Also Get The Process IDs Associated With Each Tab From The Chrome Task Manager (right-click On An Empty Area Of The Window Title Bar To Open). Automatically Attach To Child Processes There Are Two Visual Studio Extensions That Enable The Debugger To Automatically Attach To All Chrome Processes, So You Can Debug All Of Chrome At Once. Microsoft's Child Process Debugging Power Tool Is A Standalone Extension For This, And VsChromium Is Another Option That Bundles Many Other Additional Features. In Addition To Installing One Of These Extensions, You Must Run Visual Studio As Administrator, Or It Will Silently Fail To Attach To Some Of Chrome's Child Processes. Single-process Mode One Way To Debug Issues Is To Run Chromium In Single-process Mode. This Will Allow You To See The Entire State Of The Program Without Extra Work (although It Will Still Have Many Threads). To Use Single-process Mode, Add The Command-line Flag --single-process This Approach Isn't Perfect Because Some Problems Won't Manifest Themselves In This Mode And Some Features Don't Work And Worker Threads Are Still Spawned Into New Processes. Manually Attaching To A Child Process You Can Attach To The Running Child Processes With The Debugger. Select Tools > Attach To Process And Click The Chrome.exe Process You Want To Attach To. Before Attaching, Make Sure You Have Selected Only Native Code When Attaching To The Process This Is Done By Clicking Select... In The Attach To Process Window And Only Checking Native. If You Forget This, It May Attempt To Attach In "WebKit" Mode To Debug JavaScript, And You'll Get An Error Message "An Operation Is Not Legal In The Current State." You Can Now Debug The Two Processes As If They Were One. When You Are Debugging Multiple Processes, Open The Debug > Windows > Processes Window To Switch Between Them. Sometimes You Are Debugging Something That Only Happens On Startup, And Want To See The Child Process As Soon As It Starts. Use: --renderer-startup-dialog --no-sandbox You Have To Disable The Sandbox Or The Dialog Box Will Be Prohibited From Showing. When The Dialog Appears, Visit Tools > Attach To Process And Attach To The Process Showing The Renderer Startup Dialog. Now You're Debugging In The Renderer And Can Continue Execution By Pressing OK In The Dialog. Startup Dialogs Also Exist For Other Child Process Types: --gpu-startup-dialog, --ppapi-startup-dialog, --utility-startup-dialog, --plugin-startup-dialog (for NPAPI). For Utilities, You Can Add A Service Type --utility-startup-dialog=data_decoder.mojom.DataDecoderService. You Can Also Try The Vs-chromium Plug-in To Attach To The Right Processes. Semi-automatically Attaching The Debugger To Child Processes The Following Flags Cause Child Processes To Wait For 60 Seconds In A Busy Loop For A Debugger To Attach To The Process. Once Either Condition Is True, It Continues On; No Exception Is Thrown. --wait-for-debugger-children[=filter] The Filter, If Provided, Will Fire Only If It Matches The --type Parameter To The Process. Values Include Renderer, Plugin (for NPAPI), Ppapi, Gpu-process, And Utility. When Using This Option, It May Be Helpful To Limit The Number Of Renderer Processes Spawned, Using: --renderer-process-limit=1 Image File Execution Options Using Image File Execution Options (IFEO) Will Not Work Because CreateProcess() Returns The Handle To The Debugger Process Instead Of The Intended Child Process. There Are Also Issues With The Sandbox. Time Travel Debugging You Can Do Time Travel Debugging Using WinDbg Preview (must Be Installed From The Microsoft Store). This Lets You Execute A Program Forward And Backwards. After Capturing A Trace, You Can Set Breakpoints And Step Through Code As Normal, But Also Provides 'backwards' Commands (g-, T-, P-) So That You Can Go Back And Forth Through The Execution. It Is Especially Useful To Set Data Breakpoints (ba Command) And Reverse Continuing, So You Can See When A Certain Variable Was Last Changed To Its Current Value. Chromium Specifics: The Type Of Injection The Time Travel Tracer Needs To Perform Is Incompatible With The Chromium Sandbox. In Order To Record A Trace, You'll Need To Run With --no-sandbox. Chromium Cannot Run Elevated With Administrator Privileges, So The "Launch Executable (advance)" Option Won't Work, You'll Need To Attach After The Process Has Already Launched Via The Checkbox In The Bottom Right. If You Need To Record Startup-like Things, You'll Have To Use --{browser,gpu,renderer,utility}-startup-dialog, Then Attach (and Hope The Relevant Code Hasn't Executed Before That Point). JsDbg -- Data Structure Visualization You Can Install JsDbg As A Plugin For WinDbg Or Visual Studio. It Interactively Lets You Look At Data Structures (such As The DOM Tree, Accessibility Tree, Layout Object Tree, And Others) In A Web Browser As You Debug. See The JsDbg Site For Some Screen Shots And Usage Examples. This Also Works When Examining Memory Dumps (though Not Minidumps), And Also Works Together With Time Travel Debugging. Visual Studio Hints Debug Visualizers Chrome's Custom Debug Visualizers Should Be Added To The Pdb Files And Automatically Picked Up By Visual Studio. The Definitions Are In //tools/win/DebugVisualizers If You Need To Modify Them (the BUILD.gn File There Has Additional Instructions). Don't Step Into Trivial Functions The Debugger Can Be Configured To Automatically Not Step Into Functions Based On Regular Expression. Edit Default.natstepfilter In The Following Directory: For Visual Studio 2015: C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\Packages\Debugger\Visualizers (for All Users) Or %USERPROFILE%\My Documents\Visual Studio 2015\Visualizers (for The Current User Only) For Visual Studio 2017 Pro: C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\Packages\Debugger\Visualizers (for All Users) Or %USERPROFILE%\My Documents\Visual Studio 2017\Visualizers (for The Current User Only) Add Regular Expressions Of Functions To Not Step Into. Remember To Regex-escape And XML-escape Them, E.g. < For < And \. For A Literal Dot. Example: Operator New NoStepInto Operator Delete NoStepInto Std::.* NoStepInto WTF::.*Ptr ::.* NoStepInto This File Is Read At Start Of A Debugging Session (F5), So You Don't Need To Restart Visual Studio After Changing It. More Info: Microsoft Email Thread V8 And Chromium V8 Supports Many Command-line Flags That Are Useful For Debugging. V8 Command-line Flags Can Be Set Via The Chromium Command-line Flag --js-flags; For Instance: Chrome.exe --js-flags="--trace_exception --heap_stats" Note That Some V8 Command-line Flags Exist Only In The Debug Build Of V8. For A List Of All V8 Flags Try: Chrome.exe --js-flags="--help" Graphics Debugging GPU Acceleration Of Rendering Can Be More Easily Debugged With Tools. See: Graphics Debugging In Visual Studio 2013 Graphical Debugging With NVIDIA NSight Debugging On Another Machine Sometimes It's Useful To Debug Installation And Execution On A Machine Other Than Your Primary Build Box. To Run The Installer On Said Other Machine, First Build The Mini_installer Target On Your Main Build Machine (e.g., Autoninja -C Out\Debug Mini_installer). Next, On The Debug Machine: Make The Build Machine's Build Volume Available On The Debug Machine Either By Mounting It Locally (e.g., Z:\) Or By Crafting A UNC Path To It (e.g., \\builder\src) Open Up A Command Prompt And Change To A Local Disk Run Src\tools\win\copy-installer.bat In The Remote Checkout By Way Of The Mount (e.g., Z:\PATHTOCHECKOUT\src\...) Or UNC Path (e.g., \\builder\src\...). This Will Copy The Installer, DLLs, And PDBs Into Your Debug Machine's C:\out Or C:\build (depending On If You're Rocking The Component=shared_library Build Or Not) Run C:\out\Debug\mini_installer.exe With The Flags Of Your Choice To Install Chrome. This Can Take Some Time, Especially On A Slow Machine. Watch The Task Manager And Wait Until Mini_installer.exe Exits Before Trying To Launch Chrome (by Way Of The Shortcut(s) Created By The Installer) For Extra Pleasure, Add C:\out\Debug To Your _NT_SYMBOL_PATH Environment Variable Consider Reading The Documentation At The Top Of Copy-installer.bat To See How You Can Run It. It Tries To Be Smart And Copy The Right Things, But You May Need To Be Explicit (e.g., "copy-installer.bat Out Debug"). It Is Safe To Re-run The Script To Copy Only Modified Files (after A Rebuild, For Example). You Can Also Use The Zip Action Of The Isolate Scripts (tools\mb\mb.py) To Package All The Files For A Target Into A Single Zip File, For Example: Python Tools\mb\mb.py Zip Out/Release Base_unittests Base_unittests.zip Finding All Memory Allocations It Is Possible To Use Heap Snapshots To Get Call Stacks On All Outstanding Allocations That Use The OS Heap. This Works Particularly Well If Heap Snapshots Are Started As Soon As The Chrome Browser Process Is Created, But Before It Starts Running. Details Can Be Found In This Batch File. However, With PartitionAlloc Everywhere Most Chromium Allocations No Longer Use The Windows Heap So This Will Only Find A Subset Of Allocations, Mostly From OS DLLs. Find Memory Leaks Note: As With Heap Snapshots The Utility Of UMDH Is Greatly Reduced Now Because PartitionAlloc Everywhere Has Mostly Replaced The Windows Heap. The Windows Heap Manager Has A Really Useful Debug Flag, Where It Can Be Asked To Capture And Store A Stack Trace With Every Allocation. The Tool To Scrape These Stack Traces Out Of Processes Is UMDH, Which Comes With WinDbg. UMDH Is Great. It Will Capture A Snapshot Of The Heap State As Many Times As You Like, And It'll Do It Fairly Quickly. You Then Run It Again Against Either A Single Snapshot, Or A Pair Of Snapshots, At Which Time It'll Symbolize The Stack Traces And Aggregate Usage Up To Unique Stack Traces. Turning On The User Stack Trace Database For Chrome.exe With Gflags.exe Makes It Run Unbearably Slowly; However, Turning On The User Stack Trace Database On For The Browser Alone Is Just Fine. While It's Possible To Turn On The User Stack Database With The "!gflag" Debugging Extension, It's Too Late To Do This By The Time The Initial Debugger Breakpoint Hits. The Only Reasonable Way To Do This Is To Launch GFlags.exe, Enable The User Stack Trace Database (per Image Below), Launch Chrome Under The Debugger. Set A Breakpont When Chrome.dll Loads With "sxe Ld Chrome.dll". Step Up, To Allow Chrome.dll To Initialize. Disable The Stack Trace Database In GFlags.exe. Continue Chrome, Optionally Detaching The Debugger. Image GFlags.exe Settings For User Mode Stack Trace Database. If You Then Ever Suffer A Browser Memory Leak, You Can Snarf A Dump Of The Process With Umdh -p: > Chrome-browser-leak-umdh-dump.txt Which Can Then Typically Be "trivially" Analyzed To Find The Culprit. Miscellaneous Note That By Default Application Verifier Only Works With Non-official Builds Of Chromium. To Use Application Verifier On Official Builds You Need To Add --disable-features=RendererCodeIntegrity To Avoid Sandbox Crashes In Renderer Processes. See Crbug.com/1004989 For Details. See Also This Page. Application Verifier Is A Free Tool From Microsoft (available As Part Of The Windows SDK) That Can Be Used To Flush Out Programming Errors. Starting With M68 Application Verifier Can Be Enabled For Chrome.exe Without Needing To Disable The Sandbox. After Adding Chrome.exe To The List Of Applications To Be Stressed You Need To Expand The List Of Basics Checks And Disable The Leak Checks. You May Also Need To Disable Handles And Locks Checks Depending On Your Graphics Driver And Specific Chrome Version, But The Eventual Goal Is To Have Chrome Run With Handles And Locks Checks Enabled. When Bugs Are Found Chrome Will Trigger A Breakpoint So Running All Chrome Processes Under A Debugger Is Recommended. Chrome Will Run Much More Slowly Because Application Verifier Puts Every Heap Allocation On A Separate Page. Note That With PartitionAlloc Everywhere Most Chromium Allocations Don't Actually Go Through The Windows Heap And Are Therefore Unaffected By Application Verifier. You Can Check The Undocumented 'Cuzz' Checkbox In Application Verifier To Get The Windows Thread Scheduler To Add Some Extra Randomness In Order To Help Expose Race Conditions In Your Code. To Put A Breakpoint On CreateFile(), Add This Break Point: {,,kernel32.dll}_CreateFileW@28 {,,kernel32.dll} Specifies The DLL (context Operator). _ Prefix Means Extern "C". @28 Postfix Means _stdcall With The Stack Pop At The End Of The Function. I.e. The Number Of Arguments In BYTES. You Can Use DebugView From SysInternals Or Sawbuck To View LOG() Messages That Normally Go To Stderr On POSIX.
“The Chromium Logo The Chromium Projects Home Chromium ChromiumOS Quick Links Report Bugs Discuss Other Sites Chromium Blog Google Chrome Extensions Except As Otherwise Noted, The Content Of This Page Is Licensed Under A Creative Commons Attribution 2.5 License, And Examples Are Licensed Under The BSD License. Privacy Edit This Page For Developers > How-Tos > Debugging Chromium On Windows First See Get The Code For Checkout And Build Instructions. Getting Started You Can Use Visual Studio's Built-in Debugger Or WinDBG To Debug Chromium. You Don't Need To Use The IDE To Build In Order To Use The Debugger: Autoninja Is Used To Build Chromium And Most Developers Invoke It From A Command Prompt, And Then Open The IDE For Debugging As Necessary. To Start Debugging An Already-built Executable With Visual Studio Just Launch Visual Studio (2019 Or Higher) And Select File-> Open-> Project/Solution (Ctrl+Shift+O) And Select The Executable Of Interest. This Will Create A Solution With That Executable As The 'project'. You Can Then Launch The Debugger With F5 Or F11 Or From The Debug Menu. If You Right-click On The Executable In Solution Explorer And Select Properties Then You Can Edit Things Such As The Executable Path, Command-line Arguments, And Working Directory. You Can Add Additional Executables To The Solution By Using File-> Add-> Existing Project And Selecting Another Already-built Executable. You Can Select Which One To Debug By Right-clicking On One Of Them In Solution Explorer And Selecting Set As Startup Project. When Your Solution File Is Customized To Your Taste You Can Save It To A Directory Such As Out\solutions. Saving It There Helps Ensure That Relative Paths To Source Files, Printed From Build Commands, Will Correctly Identify The Source Files. The Tools Menu Can Be Used To Add Commands To Do Things Like Invoke Autoninja To Build Chrome, Compile The Selected Source File, Or Other Things. Visual Studio 2017 Is Not Recommended For Debugging Of Chromium - Use A Newer Version For Best Performance And Stability. Symbol_level=2 Is The Default On Windows And Gives Full Debugging Information With Types, Locals, Globals, Function Names, And Source/line Information. Symbol_level=1 Creates Smaller PDBs With Just Function Names, And Source/line Information - Source-level Debugging Is Still Supported (new From June 2019), But Local Variables And Type Information Are Missing. Symbol_level=0 Gives Extremely Limited Debugging Abilities, Mostly Just Viewing Call Stacks When Chromium Crashes. Browsing Source Code If You Use A Solution File Generated By Gn (gn Gen --ide=vs) Then Intellisense May Help You Navigate The Code. If This Doesn't Work Or If You Use A Solution Created As Above Then You May Want To Install VsChromium To Help Navigate The Code, As Well As Using Https://source.chromium.org. Profiles It's A Good Idea To Use A Different Chrome Profile For Your Debugging. If You Are Debugging Google Chrome Branded Builds, Or Use A Chromium Build As Your Primary Browser, The Profiles Can Collide So You Can't Run Both At Once, And Your Stable Browser Might See Profile Versions From The Future (Google Chrome And Chromium Use Different Profile Directories By Default So Won't Collide). Use The Command-line Option: --user-data-dir=C:\tmp\my_debug_profile (replace The Path As Necessary) Using The IDE, Go To The Debugging Tab Of The Properties Of The Chrome Project, And Set The Command Arguments. Chrome Debug Log Enable Chrome Debug Logging To A File By Passing --enable-logging --v=1 Command-line Flags At Startup. Debug Builds Place The Chrome_debug.log File In The Out\Debug Directory. Release Builds Place The File In The Top Level Of The User Data Chromium App Directory, Which Is OS-version-dependent. For More Information, See Logging And User Data Directory Details. Symbol Server If You Are Debugging Official Google Chrome Release Builds, Use The Symbol Server: Https://chromium-browser-symsrv.commondatastorage.googleapis.com In Visual Studio, This Goes In Tools > Options Under Debugging > Symbols. You Should Set Up A Local Cache In A Empty Directory On Your Computer. In Windbg You Can Add This To Your Symbol Server Search Path With The Command Below, Where C:\symbols Is A Local Cache Directory: .sympath+ SRV\*C:\symbols\*https://chromium-browser-symsrv.commondatastorage.googleapis.com Alternately, You Can Set The _NT_SYMBOL_PATH Environment Variable To Include Both The Microsoft And Google Symbol Servers - VS, Windbg, And Other Tools Should Both Respect This Environment Variable: _NT_SYMBOL_PATH=SRV\*C:\symbols\*https://msdl.microsoft.com/download/symbols;SRV\*C:\symbols\*https://chromium-browser-symsrv.commondatastorage.googleapis.com Note That Symbol Servers Will Let The Debuggers Download Both The PE Files (DLLs And EXEs) And The PDB Files. Chrome Often Loads Third Party Libraries And Partial Symbols For Some Of These Are Also Public. For Example: AMD: Https://download.amd.com/dir/bin Nvidia: Https://driver-symbols.nvidia.com/ Intel: Https://software.intel.com/sites/downloads/symbols/ For Example, For Completeness, The Following Symbol Server Environment Variable Will Resolve All Of The Above Sources - But This Is More Than Is Normally Needed: _NT_SYMBOL_PATH=SRV\*C:\symbols\*https://msdl.microsoft.com/download/symbols;SRV\*C:\symbols\*https://chromium-browser-symsrv.commondatastorage.googleapis.com;SRV\*C:\symbols\*https://download.amd.com/dir/bin;SRV\*C:\symbols\*https://driver-symbols.nvidia.com/;SRV\*C:\symbols\*https://software.intel.com/sites/downloads/symbols/ Source Indexing You Should Set Up Source Indexing In Your Debugger (.srcfix In Windbg, Tools-> Options-> Debugging-> General-> Enable Source Server Support In Visual Studio) So That The Correct Source Files Will Automatically Be Downloaded Based On Information In The Downloaded Symbols. Additionally, You Must Have Python In Your Path In Order For The Command That Fetches Source Files To Succeed; Launching The Debugger From The Same Environment As Where You Build Chromium Is An Easy Way To Ensure It's Present. This Is Highly Recommended When Debugging Released Google Chrome Builds Or Looking At Crash Dumps. Having The Correct Version Of The Source Files Automatically Show Up Saves Significant Time So You Should Definitely Set This. Multi-process Issues Chromium Can Be Challenging To Debug Because Of Its Multi-process Architecture. When You Select Run In The Debugger, Only The Main Browser Process Will Be Debugged. The Code That Actually Renders Web Pages (the Renderer) And The Plugins Will Be In Separate Processes That's Not (yet!) Being Debugged. The ProcessExplorer Tool Has A Process Tree View Where You Can See How These Processes Are Related. You Can Also Get The Process IDs Associated With Each Tab From The Chrome Task Manager (right-click On An Empty Area Of The Window Title Bar To Open). Automatically Attach To Child Processes There Are Two Visual Studio Extensions That Enable The Debugger To Automatically Attach To All Chrome Processes, So You Can Debug All Of Chrome At Once. Microsoft's Child Process Debugging Power Tool Is A Standalone Extension For This, And VsChromium Is Another Option That Bundles Many Other Additional Features. In Addition To Installing One Of These Extensions, You Must Run Visual Studio As Administrator, Or It Will Silently Fail To Attach To Some Of Chrome's Child Processes. Single-process Mode One Way To Debug Issues Is To Run Chromium In Single-process Mode. This Will Allow You To See The Entire State Of The Program Without Extra Work (although It Will Still Have Many Threads). To Use Single-process Mode, Add The Command-line Flag --single-process This Approach Isn't Perfect Because Some Problems Won't Manifest Themselves In This Mode And Some Features Don't Work And Worker Threads Are Still Spawned Into New Processes. Manually Attaching To A Child Process You Can Attach To The Running Child Processes With The Debugger. Select Tools > Attach To Process And Click The Chrome.exe Process You Want To Attach To. Before Attaching, Make Sure You Have Selected Only Native Code When Attaching To The Process This Is Done By Clicking Select... In The Attach To Process Window And Only Checking Native. If You Forget This, It May Attempt To Attach In "WebKit" Mode To Debug JavaScript, And You'll Get An Error Message "An Operation Is Not Legal In The Current State." You Can Now Debug The Two Processes As If They Were One. When You Are Debugging Multiple Processes, Open The Debug > Windows > Processes Window To Switch Between Them. Sometimes You Are Debugging Something That Only Happens On Startup, And Want To See The Child Process As Soon As It Starts. Use: --renderer-startup-dialog --no-sandbox You Have To Disable The Sandbox Or The Dialog Box Will Be Prohibited From Showing. When The Dialog Appears, Visit Tools > Attach To Process And Attach To The Process Showing The Renderer Startup Dialog. Now You're Debugging In The Renderer And Can Continue Execution By Pressing OK In The Dialog. Startup Dialogs Also Exist For Other Child Process Types: --gpu-startup-dialog, --ppapi-startup-dialog, --utility-startup-dialog, --plugin-startup-dialog (for NPAPI). For Utilities, You Can Add A Service Type --utility-startup-dialog=data_decoder.mojom.DataDecoderService. You Can Also Try The Vs-chromium Plug-in To Attach To The Right Processes. Semi-automatically Attaching The Debugger To Child Processes The Following Flags Cause Child Processes To Wait For 60 Seconds In A Busy Loop For A Debugger To Attach To The Process. Once Either Condition Is True, It Continues On; No Exception Is Thrown. --wait-for-debugger-children[=filter] The Filter, If Provided, Will Fire Only If It Matches The --type Parameter To The Process. Values Include Renderer, Plugin (for NPAPI), Ppapi, Gpu-process, And Utility. When Using This Option, It May Be Helpful To Limit The Number Of Renderer Processes Spawned, Using: --renderer-process-limit=1 Image File Execution Options Using Image File Execution Options (IFEO) Will Not Work Because CreateProcess() Returns The Handle To The Debugger Process Instead Of The Intended Child Process. There Are Also Issues With The Sandbox. Time Travel Debugging You Can Do Time Travel Debugging Using WinDbg Preview (must Be Installed From The Microsoft Store). This Lets You Execute A Program Forward And Backwards. After Capturing A Trace, You Can Set Breakpoints And Step Through Code As Normal, But Also Provides 'backwards' Commands (g-, T-, P-) So That You Can Go Back And Forth Through The Execution. It Is Especially Useful To Set Data Breakpoints (ba Command) And Reverse Continuing, So You Can See When A Certain Variable Was Last Changed To Its Current Value. Chromium Specifics: The Type Of Injection The Time Travel Tracer Needs To Perform Is Incompatible With The Chromium Sandbox. In Order To Record A Trace, You'll Need To Run With --no-sandbox. Chromium Cannot Run Elevated With Administrator Privileges, So The "Launch Executable (advance)" Option Won't Work, You'll Need To Attach After The Process Has Already Launched Via The Checkbox In The Bottom Right. If You Need To Record Startup-like Things, You'll Have To Use --{browser,gpu,renderer,utility}-startup-dialog, Then Attach (and Hope The Relevant Code Hasn't Executed Before That Point). JsDbg -- Data Structure Visualization You Can Install JsDbg As A Plugin For WinDbg Or Visual Studio. It Interactively Lets You Look At Data Structures (such As The DOM Tree, Accessibility Tree, Layout Object Tree, And Others) In A Web Browser As You Debug. See The JsDbg Site For Some Screen Shots And Usage Examples. This Also Works When Examining Memory Dumps (though Not Minidumps), And Also Works Together With Time Travel Debugging. Visual Studio Hints Debug Visualizers Chrome's Custom Debug Visualizers Should Be Added To The Pdb Files And Automatically Picked Up By Visual Studio. The Definitions Are In //tools/win/DebugVisualizers If You Need To Modify Them (the BUILD.gn File There Has Additional Instructions). Don't Step Into Trivial Functions The Debugger Can Be Configured To Automatically Not Step Into Functions Based On Regular Expression. Edit Default.natstepfilter In The Following Directory: For Visual Studio 2015: C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\Packages\Debugger\Visualizers (for All Users) Or %USERPROFILE%\My Documents\Visual Studio 2015\Visualizers (for The Current User Only) For Visual Studio 2017 Pro: C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\Packages\Debugger\Visualizers (for All Users) Or %USERPROFILE%\My Documents\Visual Studio 2017\Visualizers (for The Current User Only) Add Regular Expressions Of Functions To Not Step Into. Remember To Regex-escape And XML-escape Them, E.g. < For < And \. For A Literal Dot. Example: Operator New NoStepInto Operator Delete NoStepInto Std::.* NoStepInto WTF::.*Ptr ::.* NoStepInto This File Is Read At Start Of A Debugging Session (F5), So You Don't Need To Restart Visual Studio After Changing It. More Info: Microsoft Email Thread V8 And Chromium V8 Supports Many Command-line Flags That Are Useful For Debugging. V8 Command-line Flags Can Be Set Via The Chromium Command-line Flag --js-flags; For Instance: Chrome.exe --js-flags="--trace_exception --heap_stats" Note That Some V8 Command-line Flags Exist Only In The Debug Build Of V8. For A List Of All V8 Flags Try: Chrome.exe --js-flags="--help" Graphics Debugging GPU Acceleration Of Rendering Can Be More Easily Debugged With Tools. See: Graphics Debugging In Visual Studio 2013 Graphical Debugging With NVIDIA NSight Debugging On Another Machine Sometimes It's Useful To Debug Installation And Execution On A Machine Other Than Your Primary Build Box. To Run The Installer On Said Other Machine, First Build The Mini_installer Target On Your Main Build Machine (e.g., Autoninja -C Out\Debug Mini_installer). Next, On The Debug Machine: Make The Build Machine's Build Volume Available On The Debug Machine Either By Mounting It Locally (e.g., Z:\) Or By Crafting A UNC Path To It (e.g., \\builder\src) Open Up A Command Prompt And Change To A Local Disk Run Src\tools\win\copy-installer.bat In The Remote Checkout By Way Of The Mount (e.g., Z:\PATHTOCHECKOUT\src\...) Or UNC Path (e.g., \\builder\src\...). This Will Copy The Installer, DLLs, And PDBs Into Your Debug Machine's C:\out Or C:\build (depending On If You're Rocking The Component=shared_library Build Or Not) Run C:\out\Debug\mini_installer.exe With The Flags Of Your Choice To Install Chrome. This Can Take Some Time, Especially On A Slow Machine. Watch The Task Manager And Wait Until Mini_installer.exe Exits Before Trying To Launch Chrome (by Way Of The Shortcut(s) Created By The Installer) For Extra Pleasure, Add C:\out\Debug To Your _NT_SYMBOL_PATH Environment Variable Consider Reading The Documentation At The Top Of Copy-installer.bat To See How You Can Run It. It Tries To Be Smart And Copy The Right Things, But You May Need To Be Explicit (e.g., "copy-installer.bat Out Debug"). It Is Safe To Re-run The Script To Copy Only Modified Files (after A Rebuild, For Example). You Can Also Use The Zip Action Of The Isolate Scripts (tools\mb\mb.py) To Package All The Files For A Target Into A Single Zip File, For Example: Python Tools\mb\mb.py Zip Out/Release Base_unittests Base_unittests.zip Finding All Memory Allocations It Is Possible To Use Heap Snapshots To Get Call Stacks On All Outstanding Allocations That Use The OS Heap. This Works Particularly Well If Heap Snapshots Are Started As Soon As The Chrome Browser Process Is Created, But Before It Starts Running. Details Can Be Found In This Batch File. However, With PartitionAlloc Everywhere Most Chromium Allocations No Longer Use The Windows Heap So This Will Only Find A Subset Of Allocations, Mostly From OS DLLs. Find Memory Leaks Note: As With Heap Snapshots The Utility Of UMDH Is Greatly Reduced Now Because PartitionAlloc Everywhere Has Mostly Replaced The Windows Heap. The Windows Heap Manager Has A Really Useful Debug Flag, Where It Can Be Asked To Capture And Store A Stack Trace With Every Allocation. The Tool To Scrape These Stack Traces Out Of Processes Is UMDH, Which Comes With WinDbg. UMDH Is Great. It Will Capture A Snapshot Of The Heap State As Many Times As You Like, And It'll Do It Fairly Quickly. You Then Run It Again Against Either A Single Snapshot, Or A Pair Of Snapshots, At Which Time It'll Symbolize The Stack Traces And Aggregate Usage Up To Unique Stack Traces. Turning On The User Stack Trace Database For Chrome.exe With Gflags.exe Makes It Run Unbearably Slowly; However, Turning On The User Stack Trace Database On For The Browser Alone Is Just Fine. While It's Possible To Turn On The User Stack Database With The "!gflag" Debugging Extension, It's Too Late To Do This By The Time The Initial Debugger Breakpoint Hits. The Only Reasonable Way To Do This Is To Launch GFlags.exe, Enable The User Stack Trace Database (per Image Below), Launch Chrome Under The Debugger. Set A Breakpont When Chrome.dll Loads With "sxe Ld Chrome.dll". Step Up, To Allow Chrome.dll To Initialize. Disable The Stack Trace Database In GFlags.exe. Continue Chrome, Optionally Detaching The Debugger. Image GFlags.exe Settings For User Mode Stack Trace Database. If You Then Ever Suffer A Browser Memory Leak, You Can Snarf A Dump Of The Process With Umdh -p: > Chrome-browser-leak-umdh-dump.txt Which Can Then Typically Be "trivially" Analyzed To Find The Culprit. Miscellaneous Note That By Default Application Verifier Only Works With Non-official Builds Of Chromium. To Use Application Verifier On Official Builds You Need To Add --disable-features=RendererCodeIntegrity To Avoid Sandbox Crashes In Renderer Processes. See Crbug.com/1004989 For Details. See Also This Page. Application Verifier Is A Free Tool From Microsoft (available As Part Of The Windows SDK) That Can Be Used To Flush Out Programming Errors. Starting With M68 Application Verifier Can Be Enabled For Chrome.exe Without Needing To Disable The Sandbox. After Adding Chrome.exe To The List Of Applications To Be Stressed You Need To Expand The List Of Basics Checks And Disable The Leak Checks. You May Also Need To Disable Handles And Locks Checks Depending On Your Graphics Driver And Specific Chrome Version, But The Eventual Goal Is To Have Chrome Run With Handles And Locks Checks Enabled. When Bugs Are Found Chrome Will Trigger A Breakpoint So Running All Chrome Processes Under A Debugger Is Recommended. Chrome Will Run Much More Slowly Because Application Verifier Puts Every Heap Allocation On A Separate Page. Note That With PartitionAlloc Everywhere Most Chromium Allocations Don't Actually Go Through The Windows Heap And Are Therefore Unaffected By Application Verifier. You Can Check The Undocumented 'Cuzz' Checkbox In Application Verifier To Get The Windows Thread Scheduler To Add Some Extra Randomness In Order To Help Expose Race Conditions In Your Code. To Put A Breakpoint On CreateFile(), Add This Break Point: {,,kernel32.dll}_CreateFileW@28 {,,kernel32.dll} Specifies The DLL (context Operator). _ Prefix Means Extern "C". @28 Postfix Means _stdcall With The Stack Pop At The End Of The Function. I.e. The Number Of Arguments In BYTES. You Can Use DebugView From SysInternals Or Sawbuck To View LOG() Messages That Normally Go To Stderr On POSIX.” Subjects and Themes:
Edition Identifiers:
- Internet Archive ID: debugging-chromium-on-windows
Downloads Information:
The book is available for download in "texts" format, the size of the file-s is: 0.33 Mbs, the file-s for this book were downloaded 2 times, the file-s went public at Fri Jul 11 2025.
Available formats:
Archive BitTorrent - Metadata - Text -
Related Links:
- Whefi.com: Download
- Whefi.com: Review - Coverage
- Internet Archive: Details
- Internet Archive Link: Downloads
Online Marketplaces
Find The Chromium Logo The Chromium Projects Home Chromium ChromiumOS Quick Links Report Bugs Discuss Other Sites Chromium Blog Google Chrome Extensions Except As Otherwise Noted, The Content Of This Page Is Licensed Under A Creative Commons Attribution 2.5 License, And Examples Are Licensed Under The BSD License. Privacy Edit This Page For Developers > How-Tos > Debugging Chromium On Windows First See Get The Code For Checkout And Build Instructions. Getting Started You Can Use Visual Studio's Built-in Debugger Or WinDBG To Debug Chromium. You Don't Need To Use The IDE To Build In Order To Use The Debugger: Autoninja Is Used To Build Chromium And Most Developers Invoke It From A Command Prompt, And Then Open The IDE For Debugging As Necessary. To Start Debugging An Already-built Executable With Visual Studio Just Launch Visual Studio (2019 Or Higher) And Select File-> Open-> Project/Solution (Ctrl+Shift+O) And Select The Executable Of Interest. This Will Create A Solution With That Executable As The 'project'. You Can Then Launch The Debugger With F5 Or F11 Or From The Debug Menu. If You Right-click On The Executable In Solution Explorer And Select Properties Then You Can Edit Things Such As The Executable Path, Command-line Arguments, And Working Directory. You Can Add Additional Executables To The Solution By Using File-> Add-> Existing Project And Selecting Another Already-built Executable. You Can Select Which One To Debug By Right-clicking On One Of Them In Solution Explorer And Selecting Set As Startup Project. When Your Solution File Is Customized To Your Taste You Can Save It To A Directory Such As Out\solutions. Saving It There Helps Ensure That Relative Paths To Source Files, Printed From Build Commands, Will Correctly Identify The Source Files. The Tools Menu Can Be Used To Add Commands To Do Things Like Invoke Autoninja To Build Chrome, Compile The Selected Source File, Or Other Things. Visual Studio 2017 Is Not Recommended For Debugging Of Chromium - Use A Newer Version For Best Performance And Stability. Symbol_level=2 Is The Default On Windows And Gives Full Debugging Information With Types, Locals, Globals, Function Names, And Source/line Information. Symbol_level=1 Creates Smaller PDBs With Just Function Names, And Source/line Information - Source-level Debugging Is Still Supported (new From June 2019), But Local Variables And Type Information Are Missing. Symbol_level=0 Gives Extremely Limited Debugging Abilities, Mostly Just Viewing Call Stacks When Chromium Crashes. Browsing Source Code If You Use A Solution File Generated By Gn (gn Gen --ide=vs) Then Intellisense May Help You Navigate The Code. If This Doesn't Work Or If You Use A Solution Created As Above Then You May Want To Install VsChromium To Help Navigate The Code, As Well As Using Https://source.chromium.org. Profiles It's A Good Idea To Use A Different Chrome Profile For Your Debugging. If You Are Debugging Google Chrome Branded Builds, Or Use A Chromium Build As Your Primary Browser, The Profiles Can Collide So You Can't Run Both At Once, And Your Stable Browser Might See Profile Versions From The Future (Google Chrome And Chromium Use Different Profile Directories By Default So Won't Collide). Use The Command-line Option: --user-data-dir=C:\tmp\my_debug_profile (replace The Path As Necessary) Using The IDE, Go To The Debugging Tab Of The Properties Of The Chrome Project, And Set The Command Arguments. Chrome Debug Log Enable Chrome Debug Logging To A File By Passing --enable-logging --v=1 Command-line Flags At Startup. Debug Builds Place The Chrome_debug.log File In The Out\Debug Directory. Release Builds Place The File In The Top Level Of The User Data Chromium App Directory, Which Is OS-version-dependent. For More Information, See Logging And User Data Directory Details. Symbol Server If You Are Debugging Official Google Chrome Release Builds, Use The Symbol Server: Https://chromium-browser-symsrv.commondatastorage.googleapis.com In Visual Studio, This Goes In Tools > Options Under Debugging > Symbols. You Should Set Up A Local Cache In A Empty Directory On Your Computer. In Windbg You Can Add This To Your Symbol Server Search Path With The Command Below, Where C:\symbols Is A Local Cache Directory: .sympath+ SRV\*C:\symbols\*https://chromium-browser-symsrv.commondatastorage.googleapis.com Alternately, You Can Set The _NT_SYMBOL_PATH Environment Variable To Include Both The Microsoft And Google Symbol Servers - VS, Windbg, And Other Tools Should Both Respect This Environment Variable: _NT_SYMBOL_PATH=SRV\*C:\symbols\*https://msdl.microsoft.com/download/symbols;SRV\*C:\symbols\*https://chromium-browser-symsrv.commondatastorage.googleapis.com Note That Symbol Servers Will Let The Debuggers Download Both The PE Files (DLLs And EXEs) And The PDB Files. Chrome Often Loads Third Party Libraries And Partial Symbols For Some Of These Are Also Public. For Example: AMD: Https://download.amd.com/dir/bin Nvidia: Https://driver-symbols.nvidia.com/ Intel: Https://software.intel.com/sites/downloads/symbols/ For Example, For Completeness, The Following Symbol Server Environment Variable Will Resolve All Of The Above Sources - But This Is More Than Is Normally Needed: _NT_SYMBOL_PATH=SRV\*C:\symbols\*https://msdl.microsoft.com/download/symbols;SRV\*C:\symbols\*https://chromium-browser-symsrv.commondatastorage.googleapis.com;SRV\*C:\symbols\*https://download.amd.com/dir/bin;SRV\*C:\symbols\*https://driver-symbols.nvidia.com/;SRV\*C:\symbols\*https://software.intel.com/sites/downloads/symbols/ Source Indexing You Should Set Up Source Indexing In Your Debugger (.srcfix In Windbg, Tools-> Options-> Debugging-> General-> Enable Source Server Support In Visual Studio) So That The Correct Source Files Will Automatically Be Downloaded Based On Information In The Downloaded Symbols. Additionally, You Must Have Python In Your Path In Order For The Command That Fetches Source Files To Succeed; Launching The Debugger From The Same Environment As Where You Build Chromium Is An Easy Way To Ensure It's Present. This Is Highly Recommended When Debugging Released Google Chrome Builds Or Looking At Crash Dumps. Having The Correct Version Of The Source Files Automatically Show Up Saves Significant Time So You Should Definitely Set This. Multi-process Issues Chromium Can Be Challenging To Debug Because Of Its Multi-process Architecture. When You Select Run In The Debugger, Only The Main Browser Process Will Be Debugged. The Code That Actually Renders Web Pages (the Renderer) And The Plugins Will Be In Separate Processes That's Not (yet!) Being Debugged. The ProcessExplorer Tool Has A Process Tree View Where You Can See How These Processes Are Related. You Can Also Get The Process IDs Associated With Each Tab From The Chrome Task Manager (right-click On An Empty Area Of The Window Title Bar To Open). Automatically Attach To Child Processes There Are Two Visual Studio Extensions That Enable The Debugger To Automatically Attach To All Chrome Processes, So You Can Debug All Of Chrome At Once. Microsoft's Child Process Debugging Power Tool Is A Standalone Extension For This, And VsChromium Is Another Option That Bundles Many Other Additional Features. In Addition To Installing One Of These Extensions, You Must Run Visual Studio As Administrator, Or It Will Silently Fail To Attach To Some Of Chrome's Child Processes. Single-process Mode One Way To Debug Issues Is To Run Chromium In Single-process Mode. This Will Allow You To See The Entire State Of The Program Without Extra Work (although It Will Still Have Many Threads). To Use Single-process Mode, Add The Command-line Flag --single-process This Approach Isn't Perfect Because Some Problems Won't Manifest Themselves In This Mode And Some Features Don't Work And Worker Threads Are Still Spawned Into New Processes. Manually Attaching To A Child Process You Can Attach To The Running Child Processes With The Debugger. Select Tools > Attach To Process And Click The Chrome.exe Process You Want To Attach To. Before Attaching, Make Sure You Have Selected Only Native Code When Attaching To The Process This Is Done By Clicking Select... In The Attach To Process Window And Only Checking Native. If You Forget This, It May Attempt To Attach In "WebKit" Mode To Debug JavaScript, And You'll Get An Error Message "An Operation Is Not Legal In The Current State." You Can Now Debug The Two Processes As If They Were One. When You Are Debugging Multiple Processes, Open The Debug > Windows > Processes Window To Switch Between Them. Sometimes You Are Debugging Something That Only Happens On Startup, And Want To See The Child Process As Soon As It Starts. Use: --renderer-startup-dialog --no-sandbox You Have To Disable The Sandbox Or The Dialog Box Will Be Prohibited From Showing. When The Dialog Appears, Visit Tools > Attach To Process And Attach To The Process Showing The Renderer Startup Dialog. Now You're Debugging In The Renderer And Can Continue Execution By Pressing OK In The Dialog. Startup Dialogs Also Exist For Other Child Process Types: --gpu-startup-dialog, --ppapi-startup-dialog, --utility-startup-dialog, --plugin-startup-dialog (for NPAPI). For Utilities, You Can Add A Service Type --utility-startup-dialog=data_decoder.mojom.DataDecoderService. You Can Also Try The Vs-chromium Plug-in To Attach To The Right Processes. Semi-automatically Attaching The Debugger To Child Processes The Following Flags Cause Child Processes To Wait For 60 Seconds In A Busy Loop For A Debugger To Attach To The Process. Once Either Condition Is True, It Continues On; No Exception Is Thrown. --wait-for-debugger-children[=filter] The Filter, If Provided, Will Fire Only If It Matches The --type Parameter To The Process. Values Include Renderer, Plugin (for NPAPI), Ppapi, Gpu-process, And Utility. When Using This Option, It May Be Helpful To Limit The Number Of Renderer Processes Spawned, Using: --renderer-process-limit=1 Image File Execution Options Using Image File Execution Options (IFEO) Will Not Work Because CreateProcess() Returns The Handle To The Debugger Process Instead Of The Intended Child Process. There Are Also Issues With The Sandbox. Time Travel Debugging You Can Do Time Travel Debugging Using WinDbg Preview (must Be Installed From The Microsoft Store). This Lets You Execute A Program Forward And Backwards. After Capturing A Trace, You Can Set Breakpoints And Step Through Code As Normal, But Also Provides 'backwards' Commands (g-, T-, P-) So That You Can Go Back And Forth Through The Execution. It Is Especially Useful To Set Data Breakpoints (ba Command) And Reverse Continuing, So You Can See When A Certain Variable Was Last Changed To Its Current Value. Chromium Specifics: The Type Of Injection The Time Travel Tracer Needs To Perform Is Incompatible With The Chromium Sandbox. In Order To Record A Trace, You'll Need To Run With --no-sandbox. Chromium Cannot Run Elevated With Administrator Privileges, So The "Launch Executable (advance)" Option Won't Work, You'll Need To Attach After The Process Has Already Launched Via The Checkbox In The Bottom Right. If You Need To Record Startup-like Things, You'll Have To Use --{browser,gpu,renderer,utility}-startup-dialog, Then Attach (and Hope The Relevant Code Hasn't Executed Before That Point). JsDbg -- Data Structure Visualization You Can Install JsDbg As A Plugin For WinDbg Or Visual Studio. It Interactively Lets You Look At Data Structures (such As The DOM Tree, Accessibility Tree, Layout Object Tree, And Others) In A Web Browser As You Debug. See The JsDbg Site For Some Screen Shots And Usage Examples. This Also Works When Examining Memory Dumps (though Not Minidumps), And Also Works Together With Time Travel Debugging. Visual Studio Hints Debug Visualizers Chrome's Custom Debug Visualizers Should Be Added To The Pdb Files And Automatically Picked Up By Visual Studio. The Definitions Are In //tools/win/DebugVisualizers If You Need To Modify Them (the BUILD.gn File There Has Additional Instructions). Don't Step Into Trivial Functions The Debugger Can Be Configured To Automatically Not Step Into Functions Based On Regular Expression. Edit Default.natstepfilter In The Following Directory: For Visual Studio 2015: C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\Packages\Debugger\Visualizers (for All Users) Or %USERPROFILE%\My Documents\Visual Studio 2015\Visualizers (for The Current User Only) For Visual Studio 2017 Pro: C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\Packages\Debugger\Visualizers (for All Users) Or %USERPROFILE%\My Documents\Visual Studio 2017\Visualizers (for The Current User Only) Add Regular Expressions Of Functions To Not Step Into. Remember To Regex-escape And XML-escape Them, E.g. < For < And \. For A Literal Dot. Example: Operator New NoStepInto Operator Delete NoStepInto Std::.* NoStepInto WTF::.*Ptr ::.* NoStepInto This File Is Read At Start Of A Debugging Session (F5), So You Don't Need To Restart Visual Studio After Changing It. More Info: Microsoft Email Thread V8 And Chromium V8 Supports Many Command-line Flags That Are Useful For Debugging. V8 Command-line Flags Can Be Set Via The Chromium Command-line Flag --js-flags; For Instance: Chrome.exe --js-flags="--trace_exception --heap_stats" Note That Some V8 Command-line Flags Exist Only In The Debug Build Of V8. For A List Of All V8 Flags Try: Chrome.exe --js-flags="--help" Graphics Debugging GPU Acceleration Of Rendering Can Be More Easily Debugged With Tools. See: Graphics Debugging In Visual Studio 2013 Graphical Debugging With NVIDIA NSight Debugging On Another Machine Sometimes It's Useful To Debug Installation And Execution On A Machine Other Than Your Primary Build Box. To Run The Installer On Said Other Machine, First Build The Mini_installer Target On Your Main Build Machine (e.g., Autoninja -C Out\Debug Mini_installer). Next, On The Debug Machine: Make The Build Machine's Build Volume Available On The Debug Machine Either By Mounting It Locally (e.g., Z:\) Or By Crafting A UNC Path To It (e.g., \\builder\src) Open Up A Command Prompt And Change To A Local Disk Run Src\tools\win\copy-installer.bat In The Remote Checkout By Way Of The Mount (e.g., Z:\PATHTOCHECKOUT\src\...) Or UNC Path (e.g., \\builder\src\...). This Will Copy The Installer, DLLs, And PDBs Into Your Debug Machine's C:\out Or C:\build (depending On If You're Rocking The Component=shared_library Build Or Not) Run C:\out\Debug\mini_installer.exe With The Flags Of Your Choice To Install Chrome. This Can Take Some Time, Especially On A Slow Machine. Watch The Task Manager And Wait Until Mini_installer.exe Exits Before Trying To Launch Chrome (by Way Of The Shortcut(s) Created By The Installer) For Extra Pleasure, Add C:\out\Debug To Your _NT_SYMBOL_PATH Environment Variable Consider Reading The Documentation At The Top Of Copy-installer.bat To See How You Can Run It. It Tries To Be Smart And Copy The Right Things, But You May Need To Be Explicit (e.g., "copy-installer.bat Out Debug"). It Is Safe To Re-run The Script To Copy Only Modified Files (after A Rebuild, For Example). You Can Also Use The Zip Action Of The Isolate Scripts (tools\mb\mb.py) To Package All The Files For A Target Into A Single Zip File, For Example: Python Tools\mb\mb.py Zip Out/Release Base_unittests Base_unittests.zip Finding All Memory Allocations It Is Possible To Use Heap Snapshots To Get Call Stacks On All Outstanding Allocations That Use The OS Heap. This Works Particularly Well If Heap Snapshots Are Started As Soon As The Chrome Browser Process Is Created, But Before It Starts Running. Details Can Be Found In This Batch File. However, With PartitionAlloc Everywhere Most Chromium Allocations No Longer Use The Windows Heap So This Will Only Find A Subset Of Allocations, Mostly From OS DLLs. Find Memory Leaks Note: As With Heap Snapshots The Utility Of UMDH Is Greatly Reduced Now Because PartitionAlloc Everywhere Has Mostly Replaced The Windows Heap. The Windows Heap Manager Has A Really Useful Debug Flag, Where It Can Be Asked To Capture And Store A Stack Trace With Every Allocation. The Tool To Scrape These Stack Traces Out Of Processes Is UMDH, Which Comes With WinDbg. UMDH Is Great. It Will Capture A Snapshot Of The Heap State As Many Times As You Like, And It'll Do It Fairly Quickly. You Then Run It Again Against Either A Single Snapshot, Or A Pair Of Snapshots, At Which Time It'll Symbolize The Stack Traces And Aggregate Usage Up To Unique Stack Traces. Turning On The User Stack Trace Database For Chrome.exe With Gflags.exe Makes It Run Unbearably Slowly; However, Turning On The User Stack Trace Database On For The Browser Alone Is Just Fine. While It's Possible To Turn On The User Stack Database With The "!gflag" Debugging Extension, It's Too Late To Do This By The Time The Initial Debugger Breakpoint Hits. The Only Reasonable Way To Do This Is To Launch GFlags.exe, Enable The User Stack Trace Database (per Image Below), Launch Chrome Under The Debugger. Set A Breakpont When Chrome.dll Loads With "sxe Ld Chrome.dll". Step Up, To Allow Chrome.dll To Initialize. Disable The Stack Trace Database In GFlags.exe. Continue Chrome, Optionally Detaching The Debugger. Image GFlags.exe Settings For User Mode Stack Trace Database. If You Then Ever Suffer A Browser Memory Leak, You Can Snarf A Dump Of The Process With Umdh -p: > Chrome-browser-leak-umdh-dump.txt Which Can Then Typically Be "trivially" Analyzed To Find The Culprit. Miscellaneous Note That By Default Application Verifier Only Works With Non-official Builds Of Chromium. To Use Application Verifier On Official Builds You Need To Add --disable-features=RendererCodeIntegrity To Avoid Sandbox Crashes In Renderer Processes. See Crbug.com/1004989 For Details. See Also This Page. Application Verifier Is A Free Tool From Microsoft (available As Part Of The Windows SDK) That Can Be Used To Flush Out Programming Errors. Starting With M68 Application Verifier Can Be Enabled For Chrome.exe Without Needing To Disable The Sandbox. After Adding Chrome.exe To The List Of Applications To Be Stressed You Need To Expand The List Of Basics Checks And Disable The Leak Checks. You May Also Need To Disable Handles And Locks Checks Depending On Your Graphics Driver And Specific Chrome Version, But The Eventual Goal Is To Have Chrome Run With Handles And Locks Checks Enabled. When Bugs Are Found Chrome Will Trigger A Breakpoint So Running All Chrome Processes Under A Debugger Is Recommended. Chrome Will Run Much More Slowly Because Application Verifier Puts Every Heap Allocation On A Separate Page. Note That With PartitionAlloc Everywhere Most Chromium Allocations Don't Actually Go Through The Windows Heap And Are Therefore Unaffected By Application Verifier. You Can Check The Undocumented 'Cuzz' Checkbox In Application Verifier To Get The Windows Thread Scheduler To Add Some Extra Randomness In Order To Help Expose Race Conditions In Your Code. To Put A Breakpoint On CreateFile(), Add This Break Point: {,,kernel32.dll}_CreateFileW@28 {,,kernel32.dll} Specifies The DLL (context Operator). _ Prefix Means Extern "C". @28 Postfix Means _stdcall With The Stack Pop At The End Of The Function. I.e. The Number Of Arguments In BYTES. You Can Use DebugView From SysInternals Or Sawbuck To View LOG() Messages That Normally Go To Stderr On POSIX. at online marketplaces:
- Amazon: Audiable, Kindle and printed editions.
- Ebay: New & used books.
Source: LibriVox
LibriVox Search Results
Available audio books for downloads from LibriVox
1Aunt Friendly's Picture Book
By Sarah S. Baker

This book includes the classic alphabet, Sing-A-Song Of Sixpence, The Frog Who Would A Wooing go, The Three LIttle Pigs, Puss In Boot, and The Ugly Duckling. Fun for all ages! (Summary by Sam Stinson)
“Aunt Friendly's Picture Book” Metadata:
- Title: Aunt Friendly's Picture Book
- Author: Sarah S. Baker
- Language: English
- Publish Date: 1880
Edition Specifications:
- Format: Audio
- Number of Sections: 1
- Total Time: 0:21:10
Edition Identifiers:
- libriVox ID: 2268
Links and information:
Online Access
Download the Audio Book:
- File Name: aunt_friendlys_picture_book_0806_librivox
- File Format: zip
- Total Time: 0:21:10
- Download Link: Download link
Online Marketplaces
Find Aunt Friendly's Picture Book at online marketplaces:
- Amazon: Audiable, Kindle and printed editions.
- Ebay: New & used books.
2Stories of Old Greece and Rome
By Emilie Kip Baker

The Stories of Old Greece and Rome is an easy to read summary of all of the famous and not so famous Greek and Roman mythological stories. All of the famous Heroes are here: Theseus, Jason, Hercules, and all of the well known Deities. These stories tell the real detail of the myths, not the ones that have become sanitized (and dare I say it, 'Disneyfied') over the centuries. These are not stories for children, as the old gods and heroes were vengeful and some might say sadistic in their treatment of minor slights and misdemeanors. Putting out of eyes and ripping out of tongues is commonplace, and punishment by death is ever present. It is however fascinating to see how these tales have affected and influenced our culture and have woven themselves into our own myths and stories. (Summary by Kevin Green)
“Stories of Old Greece and Rome” Metadata:
- Title: Stories of Old Greece and Rome
- Author: Emilie Kip Baker
- Language: English
- Publish Date: 1913
Edition Specifications:
- Format: Audio
- Number of Sections: 39
- Total Time: 08:11:49
Edition Identifiers:
- libriVox ID: 8866
Links and information:
Online Access
Download the Audio Book:
- File Name: oldgreeceandrome_1407_librivox
- File Format: zip
- Total Time: 08:11:49
- Download Link: Download link
Online Marketplaces
Find Stories of Old Greece and Rome at online marketplaces:
- Amazon: Audiable, Kindle and printed editions.
- Ebay: New & used books.
3Intimate View of Robert G. Ingersoll
By I. Newton Baker
Written as a tribute to Colonel Robert G. Ingersoll after his death, by Isaac Newton Baker, his secretary of 14 years, and presented to the Ingersoll family. Later expanded and published by the family so the world could learn more about the public and private life, personality, work, thoughts and ideals of the most famous orator of the late 1800's, also dubbed "The Greatest Agnostic Of the Century". - Summary by Michele Fry
“Intimate View of Robert G. Ingersoll” Metadata:
- Title: ➤ Intimate View of Robert G. Ingersoll
- Author: I. Newton Baker
- Language: English
- Publish Date: 1920
Edition Specifications:
- Format: Audio
- Number of Sections: 12
- Total Time: 04:29:13
Edition Identifiers:
- libriVox ID: 9410
Links and information:
- LibriVox Link: LibriVox
- Text Source: Org/details/intimateviewrobe00bake
- Number of Sections: 12 sections
Online Access
Download the Audio Book:
- File Name: intimateviewofingersoll_1412_librivox
- File Format: zip
- Total Time: 04:29:13
- Download Link: Download link
Online Marketplaces
Find Intimate View of Robert G. Ingersoll at online marketplaces:
- Amazon: Audiable, Kindle and printed editions.
- Ebay: New & used books.
4Diary of a Suicide
By Wallace E. Baker

“Mr. B. Russell Herts, c/o International Magazine, New York City.<br /> Under separate cover I am sending you a record of a young man who is about to commit suicide. My only object is that it may help…to ease the way for some who come after…. I do not sign this, but you may verify my death by communicating with Mr. ——, whom I am writing to-day, so that he may look after my effects in New York.” <br><br> The body of a well-dressed young man was found off Manhattan Beach, Sept. 28, 1913. In his pockets a torn photograph of Strindberg and receipts for three registered letters were found. These receipts were traced to Mr. Herts and to friends in Toronto, one of whom identified the body on Oct. 2d as that of Wallace E. Baker. –From the book’s Forward.
“Diary of a Suicide” Metadata:
- Title: Diary of a Suicide
- Author: Wallace E. Baker
- Language: English
- Publish Date: 1913
Edition Specifications:
- Format: Audio
- Number of Sections: 8
- Total Time: 02:16:29
Edition Identifiers:
- libriVox ID: 10024
Links and information:
Online Access
Download the Audio Book:
- File Name: diary_suicide_ls_1507_librivox
- File Format: zip
- Total Time: 02:16:29
- Download Link: Download link
Online Marketplaces
Find Diary of a Suicide at online marketplaces:
- Amazon: Audiable, Kindle and printed editions.
- Ebay: New & used books.
5Friendly Road, New Adventures in Contentment
By Ray Stannard Baker

My grandmother Gertrude received a copy of The Friendly Road for Christmas in 1919. It must have been a special gift book--green leather binding, gold embossing, a sheet of tissue paper protecting the color plate facing the title page--this a painting of a solitary man enjoying a swim in a sun dappled stream with the caption "Surely it is good to be alive at a time like this."<br><br> Written in first person, pseudo autobiographical style, the “author” of The Friendly Road, David Grayson, is a writer,* living on a farm with cows to milk, and ducks and pigs to feed, and fields in need of plowing. One day he just slings a few belongings in a pack and walks off, leaving the cows unmilked and his sister Harriet standing in the doorway. <i>"My sober friend,"</i> Grayson writes, <i>"have you ever tried to do anything that the world at large considers not quite sensible, not quite sane? Try it!"</i> The rest of the book is an odd mixture of nostalgia for a gentler, kinder age; adventures, as Grayson relies on the charity of strangers to get by; with a bit of progressive politics thrown in. After bumming for several days, Grayson arrives in the "City," where a strike is in progress. He sympathizes with the workers, but he is appalled by <i>"the ill-smelling streets and dirty sidewalks and swarming human beings . . . the evidences of poverty, dirt, and ignorance."</i> And guess what? He returns home to his farm, and Harriet bakes him a rhubarb pie.<br><br> Gertrude, who had immigrated from Germany to the United States in 1892 at the age of 17, was 44 years old that Christmas. She was living on a fruit ranch in western Washington state, with her husband, a school teacher, also a German immigrant, whom she had married in 1898. She had 6 children, the oldest 20, the youngest only 2. The last few years had not been easy for this family. Gertrude's 10-year old daughter Mary, my mother, was slowly limping towards recovery from a bout of polio. Worse yet, during World War I Gertrude's husband was unjustly accused of being a "German sympathizer" despite the fact that his oldest son was a U.S. Army volunteer, and he was forced from his teaching post. His job loss meant more work for Gertrude, because, as my grandfather later explained to a journalist, after losing his job, he decided to “retire” to the country--<i>"to live calmly, read Homer and Goethe and Balzac and Emerson (and) raise fruit and chickens."**</i><br><br> Gertrude entrusted several of her favorite books to my teenage self before she died in 1958. Another was a book of poems entitled Because I Love You, inscribed to Gertrude as a birthday present in 1897 by a young man who was not my grandfather! Books. . . choices . . .<br><br> *David Grayson was a pseudonym used by the actual author of <i>The Friendly Road</i>, Ray Stannard Baker.<br> **Louis Adamic ,”A Man from the Black Forest," in <i>Two Way Passage</i> (1941).<br> ( summary by Sue Anderson)
“Friendly Road, New Adventures in Contentment” Metadata:
- Title: ➤ Friendly Road, New Adventures in Contentment
- Author: Ray Stannard Baker
- Language: English
- Publish Date: 1913
Edition Specifications:
- Format: Audio
- Number of Sections: 12
- Total Time: 07:12:59
Edition Identifiers:
- libriVox ID: 11118
Links and information:
Online Access
Download the Audio Book:
- File Name: friendlyroad_1611_librivox
- File Format: zip
- Total Time: 07:12:59
- Download Link: Download link
Online Marketplaces
Find Friendly Road, New Adventures in Contentment at online marketplaces:
- Amazon: Audiable, Kindle and printed editions.
- Ebay: New & used books.
6Following the Color Line
By Ray Stannard Baker

Subtitled "An Account of Negro Citizenship in the American Democracy", we are presented an in-depth and essentially non-opinionated open view of race relations as they existed in the U.S. in 1908, more than 40 years following the end of the Civil War.<br><br>The book is in three parts: The Negro in the South; The Negro in the North; and the Negro in the Nation. We are presented both rural and urban points of view, struggles for survival, varying district relationships, the effect of lynching, power struggles, and political repercussions, among many other topics. - Summary by Roger Melin
“Following the Color Line” Metadata:
- Title: Following the Color Line
- Author: Ray Stannard Baker
- Language: English
- Publish Date: 1908
Edition Specifications:
- Format: Audio
- Number of Sections: 29
- Total Time: 14:40:37
Edition Identifiers:
- libriVox ID: 11455
Links and information:
Online Access
Download the Audio Book:
- File Name: followingthecolorline_1703_librivox
- File Format: zip
- Total Time: 14:40:37
- Download Link: Download link
Online Marketplaces
Find Following the Color Line at online marketplaces:
- Amazon: Audiable, Kindle and printed editions.
- Ebay: New & used books.
7Shasta Of The Wolves
By Olaf Baker

She-wolf Nitka finds an abandoned Native American baby and raises him with her cubs. Shasta learns the wolf ways and meets his kin, where he learns his true history. Eventually he can walk with the wolves and his human kin, which leads to more adventures. (Kirk Ziegler)
“Shasta Of The Wolves” Metadata:
- Title: Shasta Of The Wolves
- Author: Olaf Baker
- Language: English
- Publish Date: 1919
Edition Specifications:
- Format: Audio
- Number of Sections: 10
- Total Time: 04:36:40
Edition Identifiers:
- libriVox ID: 14119
Links and information:
Online Access
Download the Audio Book:
- File Name: shastaofthewolves_1906_librivox
- File Format: zip
- Total Time: 04:36:40
- Download Link: Download link
Online Marketplaces
Find Shasta Of The Wolves at online marketplaces:
- Amazon: Audiable, Kindle and printed editions.
- Ebay: New & used books.
8Art of Conversation: Twelve Golden Rules
By Josephine Turck Baker

Many of us find it challenging to speak to other people, for various reasons. Some of us are afraid of being called a bore. Others are worried that we will be accused of hogging attention. Many of us simply don't know what to talk about. This book is an entertaining and enlightening manual that may be able to help. Through a series of twelve dialogues between a man and a woman, we are introduced to twelve "golden rules" that will help us navigate the waters of interpersonal communication. <br>(Summary by Devorah Allen) <br><br> He: Read by <a href="https://librivox.org/reader/13278">KevinS</a> <br>She: Read by <a href="https://librivox.org/reader/11084">Devorah Allen</a>
“Art of Conversation: Twelve Golden Rules” Metadata:
- Title: ➤ Art of Conversation: Twelve Golden Rules
- Author: Josephine Turck Baker
- Language: English
- Publish Date: 1907
Edition Specifications:
- Format: Audio
- Number of Sections: 12
- Total Time: 01:05:31
Edition Identifiers:
- libriVox ID: 15986
Links and information:
Online Access
Download the Audio Book:
- File Name: artofconversation_2107_librivox
- File Format: zip
- Total Time: 01:05:31
- Download Link: Download link
Online Marketplaces
Find Art of Conversation: Twelve Golden Rules at online marketplaces:
- Amazon: Audiable, Kindle and printed editions.
- Ebay: New & used books.
9In the Heart of Africa
By Samuel White Baker

A wonderfully readable condensation of two of Baker's earlier, longer works recounting his self-sponsored expeditions into the Dark Continent to discover the sources of the Nile: <i>The Albert N'Yanza</i>, <i>Great Basin Of The Nile (1866)</i> and <i>The Nile Tributaries Of Abyssinia (1867)</i>. And, of course, to bag a few elephants along the way. (Summary by Steven Seitel)
“In the Heart of Africa” Metadata:
- Title: In the Heart of Africa
- Author: Samuel White Baker
- Language: English
- Publish Date: 1886
Edition Specifications:
- Format: Audio
- Number of Sections: 23
- Total Time: 09:19:47
Edition Identifiers:
- libriVox ID: 16902
Links and information:
Online Access
Download the Audio Book:
- File Name: heart_of_africa_ss_2108_librivox
- File Format: zip
- Total Time: 09:19:47
- Download Link: Download link
Online Marketplaces
Find In the Heart of Africa at online marketplaces:
- Amazon: Audiable, Kindle and printed editions.
- Ebay: New & used books.
10Hannibal
By George Philip Baker
George P. Baker, popular British historian of the 1920s and 30s, covers the life and career of ancient Rome's most formidable opponent, Hannibal of Carthage. Beginning with an overview of the rise of Carthage and Rome's first conflict with that power, he describes Hannibal's life and his campaign in the Second Punic War. After crossing the Alps and invading Italy from the north, Hannibal masterminded several massive victories on the Italian peninsula which came close to crippling Rome. Through the foresight and skills of Quintus Fabius Maximus, and later Publius Scipio, Hannibal and Carthage were forced to capitulate after the Battle of Zama in northern Africa. The Second Punic War helped push Rome from a small city in central Italy to world power controling much of the Mediterranean. The book follows Hannibal through his death in Bithynia c. 181 BC. - Summary by Mark Harrington
“Hannibal” Metadata:
- Title: Hannibal
- Author: George Philip Baker
- Language: English
- Publish Date: 1929
Edition Specifications:
- Format: Audio
- Number of Sections: 14
- Total Time: 10:11:19
Edition Identifiers:
- libriVox ID: 21425
Links and information:
- LibriVox Link: LibriVox
- Text Source: Hathitrust
- Number of Sections: 14 sections
Online Access
Download the Audio Book:
- File Name: hannibal_2504_librivox
- File Format: zip
- Total Time: 10:11:19
- Download Link: Download link
Online Marketplaces
Find Hannibal at online marketplaces:
- Amazon: Audiable, Kindle and printed editions.
- Ebay: New & used books.
11Thrill Book Vol. II No. 2, July 15, 1919
By R. Ray Baker, H. Bedford-Jones, Clyde Broadwell, John Russell Coryell, May Freud Dickenson, Will S. Gidley, Harold Hersey, Harry Kemp, Xavier Lecompte, Murray Leinster, Don Mark Lemon, Charlotte Mish, Ronald Oliphant, Tod Robbins and Frank Wall
Welcome fellow travelers to another exciting issue of The Thrill Book! Herein lies all manner of stories for the discerning fan of pulp fiction. We have the chilling science fiction tale of a demented inventor wreaking havoc upon the world in Murray Leinster's "A Thousand Degrees Below Zero". Explore the lost civilization of the Sargasso Sea in the first installment of "The Lost Empire"! We also get the next part of the sea-faring serial "The Opium Ship" as well as the concluding section of the spy story "Strasbourg Rose"! And that's only scratching the surface! So much more lies inside. We dare you to give The Thrill Book a listen. You'll be hooked! - Summary by Ben Tucker
“Thrill Book Vol. II No. 2, July 15, 1919” Metadata:
- Title: ➤ Thrill Book Vol. II No. 2, July 15, 1919
- Authors: ➤ R. Ray BakerH. Bedford-JonesClyde BroadwellJohn Russell CoryellMay Freud DickensonWill S. GidleyHarold HerseyHarry KempXavier LecompteMurray LeinsterDon Mark LemonCharlotte MishRonald OliphantTod RobbinsFrank Wall
- Language: English
- Publish Date: 1919
Edition Specifications:
- Format: Audio
- Number of Sections: 28
- Total Time: 09:03:56
Edition Identifiers:
- libriVox ID: 21477
Links and information:
- LibriVox Link: LibriVox
- Text Source: Org/details/tb-1919-07-15
- Number of Sections: 28 sections
Online Access
Download the Audio Book:
- File Name: thethrillbookvoliino2july151919_2509_librivox
- File Format: zip
- Total Time: 09:03:56
- Download Link: Download link
Online Marketplaces
Find Thrill Book Vol. II No. 2, July 15, 1919 at online marketplaces:
- Amazon: Audiable, Kindle and printed editions.
- Ebay: New & used books.
Buy “Go To The Worker” online:
Shop for “Go To The Worker” on popular online marketplaces.
- Ebay: New and used books.